Maven项目通过mvn clean package打包编译器版本变为1.5以及resource目录下配置文件未打入到包中的问题
一、Maven项目通过mvn clean package打包编译器版本变为1.5
通过mvn clean package -Dmaven.test.skip=true 打包时,报如下错误:
-source 1.5 中不支持 diamond 运算符
以及各种错误
如果我们不告诉maven我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处
理,这样就导致了以上编译不通过的问题。
解决办法:
我们只需要在pom.xml的打包配置中加入这个插件,指定jdk版本,重新打包,即可
<build>
...//其他配置
</plugins>
...//其他配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
打包成功了!
二、resource目录下配置文件未打入到包中的问题
打包完后,项目启动报错,发现是resource目录文件夹中的xml及properties文件没有打入到包中,项目结构:
发现原pom.xml没有打包resource目录的配置,只是对java文件夹中的xml打包进行了额外的配置:
<build>
<finalName>xxxx-xxx-server</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
...
</plugin>
</plugins>
</build>
新增一段配置,打包resource目录下的所有文件:
<build>
<finalName>xxxx-xxx-server</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory> //打包文件路径
<includes>
<include>**/*</include> //打包哪些文件,*代表全部
</includes>
</resource>
</resources>
<plugins>
<plugin>
...
</plugin>
</plugins>
</build>
配置完成后,重新打包,会发现,resource目录中的文件及文件夹全部打到了WEB-INF\classes\中,项目启动也正常了~