最近在维护和升级公司的老项目,出现了一连串的几个bug;
记录一个重要的bug,这是走过的坑,笑着也要找出来。。。
报错场景
将jdk1.6更改为1.7之后,重新配置,项目是可以跑起来的,没啥问题。
但,当update maven之后,jdk版本变成默认的1.5的了。
在解决jdk版本问题后,又出现了一个bug : Server Tomcat v7.0 Server at localhost failed to start
经过尝试好几种方法,终于解决。
这是第一个bug。
maven-update project jdk变为1.5两种解决办法
在使用Maven构建项目时,生成的maven项目jdk默认使用的是jdk1.5。
在手动修改了jdk之后,update project之后jdk又会变为1.5.
或者用eclipse的Maven插件生成的也是1.5
对于这种情况有两种办法,一是修改settings.xml,二是修改pom文件
1、配置settings.xml
打开 settings.xml 文件并编辑它(一般放在你的仓库目录目录) :
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
找到 <profiles> 节点,并添加如上配置(本机 jdk 1.8.0——25 版本,配置时修改成你本机的 jdk 版本),保存后生效。
修改Eclipse中的设置,使配置生效。
2、配置pom.xml文件
在 <build> 节点添加如下配置(本机 jdk 1.7.0_79 版本,配置时修改成你本机的 jdk 版本):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration> <source>1.7</source> <target>1.7</target> </configuration>
</plugin>
</plugins>
</build>
配置完成后,需要执行一次更新项目配置的动作。选中项目 –> 右键 –> Maven –> Update Project
方法一是全局生效,方法二只对本项目生效。
改完之后,再次运行项目。发现又一个bug。
Server Tomcat v7.0 Server at localhost failed to start
严重: A child container failed during start
java.util.concurrent.Exec