今天在用maven编译和打包新项目的时候出现了一个问题:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile
详细报错如下:
[INFO]
[INFO] -----------------------< mystery:mystery-usual >------------------------
[INFO] Building mystery-usual 1.0.1-SNAPSHOT [7/11]
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mystery-usual ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ mystery-usual ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 114 source files to /Volumes/D/xx7x_workspace/mystery-master/mystery-usual/target/classes
致命错误: 在类路径或引导类路径中找不到程序包 java.lang
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] An unknown compilation problem occurred
[INFO] 1 error
[INFO] -------------------------------------------------------------
部分配置如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
经过各种百度谷歌得到的结果无非就是说什么把 ; 改成 : 说是因为Linux/Unix与Windows分隔符不一致造成的,可是我照着改了之后也是没用的,于是我检查了maven的runner配置和Java compiler中关于JDK版本的配置,也是无效的。具体配置如下:
Java complier
maven runner配置:
后来我偶然间看到在把鼠标悬浮在 ${java.home}上的时候显示出了jre的路径信息,如下:
发现Java.home路径中路径的分隔符都是使用的 / 并且在访达中使用 command+shift+G快捷键中输入 \ 是没有效果的,无法跳转路径,于是想到会不会是Java.home后面的路径出了问题导致的,于是在把 \ 改成 / 后也是没有用的,后面考虑到可能是Java对于 / 转义的缘故,于是把单斜杠(/)改成了双斜杠(//),之后在进行编译打包,正常。
附上修改后的配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<!--Mac请使用下面这一行-->
<bootclasspath>${java.home}//lib//rt.jar:${java.home}//lib//jce.jar</bootclasspath>
<!--windows系统请使用下面这一行-->
<!-- <bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>-->
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
附上打包成功的截图: