Maven Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin

問題現象:

Windows Maven編譯打包報錯,Mac沒有打包正常:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project xx-common-base: Compilation failure

Maven打包錯誤堆棧信息
mvn clean package

-nowarn -target 1.8 -source 1.8 -encoding UTF-8 -bootclasspath C:\Program Files\Java\jdk1.8.0_251\jre/lib/rt.jar:C:\Program Files\Java\jdk1.8.0_251\jre/lib/jce.jar

[DEBUG] incrementalBuildHelper#beforeRebuildExecution

[INFO] Compiling 29 source files to D:\xxx\xxx-commons\xxx-common-base\target\classes

致命錯誤: 在類路徑或引導類路徑中找不到程序包 java.lang

[DEBUG] incrementalBuildHelper#afterRebuildExecution

[INFO] -------------------------------------------------------------

[ERROR] COMPILATION ERROR : 

[INFO] -------------------------------------------------------------

[ERROR] An unknown compilation problem occurred

[INFO] 1 error

[INFO] ------------------------------------------------------------ -

[INFO] ------------------------------------------------------------------------

[INFO] BUILD FAILURE

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 2.275 s

[INFO] Finished at: 2023-04-04T11:41:21+08:00

[INFO] Final Memory: 16M/185M

[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project xxx-common-base: Compilation failure

[ERROR] An unknown compilation problem occurred

[ERROR] -> [Help 1]

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project xxx-common-base: Compilation failure

An unknown compilation problem occurred



at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)

at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)

at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)

at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)

at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)

at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)

at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)

at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)

at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)

at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)

at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)

at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

at org.codehaus.classworlds.Launcher.main(Launcher.java:47)

Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure

An unknown compilation problem occurred



at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1220)

at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:187)

at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)

at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)

... 21 more

[ERROR] 

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Process finished with exit code 1

問題排查:

問題關鍵提示信息: 報java.lang包沒找到,懷疑跟環境變量或Windows jdk路徑有關


image.png

1.排查java環境變量=> 正常
2.懷疑跟Windows jdk路徑相關 => 根因

問題原因

Windows環境Maven compiler插件路徑問題


image.png

問題fix:

如下所示的配置很特殊:windows 下使用分號(;)分隔,linux/mac 下使用冒號(:)分隔
修改后重新Maven打包正常,問題修復

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <version>${maven.compiler.version}</version>
   <configuration>
       <source>${java.version}</source>
       <target>${java.version}</target>
       <encoding>UTF-8</encoding>
       <!-- 不是maven推薦的方式,只是為了方便管理后臺人員頻繁開發的jar包 -->
       <compilerArguments>
           <extdirs>src\main\webapp\WEB-INF\lib</extdirs>
           <!-- 這個配置很特殊:windows下使用分號(;)分隔,linux/mac下使用冒號(:)分隔 -->
         <bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
       </compilerArguments>
   </configuration>
</plugin>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容