Maven 3.7.0编译java 8项目遇到不兼容API
当我使用以下命令编译Java项目时:Maven 3.7.0编译java 8项目遇到不兼容API,java,maven,Java,Maven,当我使用以下命令编译Java项目时: mvn install 抛出此错误: [INFO] Changes detected - recompiling the module! [INFO] Compiling 1158 source files to /var/lib/jenkins/workspace/xycq-web-ci/cqnews-online/target/classes [INFO] --------------------------------------------
mvn install
抛出此错误:
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1158 source files to /var/lib/jenkins/workspace/xycq-web-ci/cqnews-online/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.172 s
[INFO] Finished at: 2018-06-16T12:47:50+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project cqnews-online: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile failed: An API incompatibility was encountered while executing org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile: java.lang.NoSuchMethodError: org.codehaus.plexus.compiler.CompilerError: method <init>(Ljava/lang/String;ZIIIILjava/lang/String;)V not found
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.apache.maven.plugins:maven-compiler-plugin:3.7.0
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/opt/haishu/local/repo/m2/repository/org/apache/maven/plugins/maven-compiler-plugin/3.7.0/maven-compiler-plugin-3.7.0.jar
[ERROR] urls[1] = file:/opt/haishu/local/repo/m2/repository/org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar
解决此问题的两个步骤:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerId>eclipse</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>2.8.4</version>
</dependency>
</dependencies>
</plugin>
org.apache.maven.plugins
maven编译器插件
3.7.0
1.8
1.8
UTF-8
日食
org.codehaus.plexus
plexus编译器eclipse
2.8.4
org.codehaus.plexus
丛编译器javac
2.8.4
jenkins正在编译您的项目?也许jenkins有不同的插件版本,并且出现了NoSuchMethodError
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerId>eclipse</compilerId>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.8.4</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>2.8.4</version>
</dependency>
</dependencies>
</plugin>