一般使用IDEA编译时,一般都是这样操作
先执行clean清理target文件,然后执行package或者install,二选一即可,因为效果时差不多的。
但是在模块化中还需要一些特殊的配置,以达到让maven打包不会报错
如果在pom.xml中什么都没有配置,那么打包会出现以下错误
1.Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project jdk13-demo: Fatal error compiling
该错误是没有指定java编译的版本,所以我们需要在pom.xml中加入以下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>12</source>
<target>12</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
经过我的测试,这样是可以成功打包的,但是打包后执行会发现,报了另外一个错误
2. .\jdk13-demo-0.0.1-SNAPSHOT.jar中没有主清单属性
只针对springboot而言,我碰到了这个错误,没有主清单属性,那么这个还需要springboot的另外一个配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
那么以上两个配置都需要配置上去,最后就是这样的配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>12</source>
<target>12</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
3.尝试打开文件.\jdk13-demo-0.0.1-SNAPSHOT.jar时出现意外错误
正常操作来说是不会出现这个错误的,这个错误是由于使用压缩软件直接修改了jar中的文件导致的不能识别,只要重新打包一下就可以了
最后我们编译出来的结构是这样的:
执行一下看看:
没有什么问题,并且页面能够正常访问。
ps:本来是想使用jdk13来做一个测试的,但是发现springboot2.1.9的版本只能支持到12,配置了jdk13后会出现错误:
ps2:使用jdk12可能还会出现一些奇奇怪怪的问题,比如
Error:java: 错误: 无效的源发行版:13
Error:java: 错误: 不支持发行版本 5-13
Error:java: 源发行版 8(9、10、11) 与 --enable-preview 一起使用时无效
(仅发行版 12 支持预览语言功能)
以上问题都是没有正确配置jdk编译的问题,在IDEA中,需要指定三个地方:
这三个地方都一致之后,就不会出现这些问题了,磕磕碰碰了两天,将问题总结下,终于可以使用上了。