**前因:**同事用的eclipse编译,有个地方在eclipse中编译只是警告,但是用maven编译直接报错
导致原因:eclipse自带的为jdt,maven编译用的javac,maven默认使用的是javac(jdk自带)编译相比较于eclipse的jdt要严格许多,所以就导致出现eclipse中编译不报错,而用maven编译就报错的原因。
可以调整maven编译默认编译器:这里要注意maven-compiler-plugin和org.codehaus.plexus的对应版本问题,版本不同可以能会出现 不同的编译问题。
例如出现的问题有:
① path/target/generated-sources/annotations does not exist
② a.lang.NoSuchMethodError: org.codehaus.plexus.compiler.CompilerError
③ An API incompatibility was encountered while executing org.apache.maven.plugins:maven-compiler-plugin:3.1:compile: java.lang.NoSuchMethodError: org.codehaus.plexus.compiler.CompilerConfiguration.isParameters
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<optimize>true</optimize>
<compilerId>eclipse</compilerId>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.4</version>
</dependency>
</dependencies>
</plugin>