Maven在linux编译问题

工作中在linux上Maven打包代码遇到一些问题这里记录一下。
先说明一下情况:
我配合做代码检查的同事把我们的代码在他们的服务器可以正常的编译打包,第一次打包通过了但是由于代码没及时更新报语法错误原因是缺少一个方法。后来我就更新代码,然后重新打包这次问题就换了(只有两个项目报错,其他项目相同代码的地方都没错)。如下:
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.923s
[INFO] Finished at: Thu Nov 05 14:54:39 CST 2015
[INFO] Final Memory: 25M/981M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project aibi-si-ia: Compilation failure: Compilation failure:
[ERROR] /data01/usergrp/mvno/bdx/app/aibi-si-parent/aibi-si-ia/src/main/java/com/asiainfo/biapp/si/ia/beanpostprocessor/IaPropProcessor.java:[15,59] 类型 org.springframework.context.ApplicationListener 不带有参数
[ERROR] /data01/usergrp/mvno/bdx/app/aibi-si-parent/aibi-si-ia/src/main/java/com/asiainfo/biapp/si/ia/beanpostprocessor/IaPropProcessor.java:[26,4] 方法不会覆盖或实现超类型的方法

这个问题表面看是因为jdk的版本问题,大家都知道jdk6之后才完美的支持了@Override注解,一般在eclipse遇到这个问题就直接修改编译代码的级别为1.6就可以了。但是问题是我看系统的jdk是1.6的,和我们的环境基本一模一样,后来尝试修改maven的编译插件的jdk版本,问题依旧。

问题解决:
经过一段时间的折磨,我怀疑是这两个项目引用了旧版本的spring 的jar包,通过执行dependency:tree命令发现我本机环境和他们服务器的环境出现不同结果,本机dubbo没有依赖spring的2.5版本,但是他们服务器显示依赖了这个版本。然后我就在依赖dubbo的插件加上了排除spring的配置,然后再打包问题就解决了。这个问题在开发和测试环境都没遇到,但是在他们服务器就有这个问题了,我怀疑是我们的同事私自把本地仓库的插件配置改了,但是这个结论没有说服力。虽然问题解决了但是还是有点疑惑。请了解的大神帮忙解惑,不胜感激...
修改前(aibi-si-coc-service项目间接的依赖了dubbo):
<dependency>
		<groupId>com.asiainfo.biapp</groupId>
		<artifactId>aibi-si-coc-service</artifactId>
		<version>${project.parent.version}</version>
	</dependency>

修改后:
<dependency>
		<groupId>com.asiainfo.biapp</groupId>
		<artifactId>aibi-si-coc-service</artifactId>
		<version>${project.parent.version}</version>
		<exclusions>
			<exclusion>
				<groupId>org.springframework</groupId>
				<artifactId>spring</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

猜你喜欢

转载自qihuiyong6.iteye.com/blog/2254682