问题:maven执行package命令打包时,src/main/java路径下的properties文件偶尔丢失
第一种解决方式:pom.xml中加入resources配置
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>
说明:
首先了解maven生命周期如下:
生命周期阶段 | 目标 |
process-resources | resources:resources |
compile | compiler:compile |
process-test-resources | resources:testResources |
test-compile | compiler:testCompile |
test | surefire:test |
package | war:war |
install | install:install |
deploy | deploy:deploy |
经测试,
1.当pom中不增加resources配置时,
- 执行process-resources,class文件夹下只包含src/main/resources下的文件
- 执行compile,class文件夹下包含src/main/resources下的文件与src/main/java下的*.class文件,丢失src/main/java下的*.properties文件
2.当pom中增加resources配置时
- 执行process-resources,class文件夹下只包含src/main/resources下的文件与src/main/java下的*.properties文件
- 执行compile,class文件夹下包含src/main/resources下的文件与src/main/java下的*.class文件与*.properties文件
第二种解决方式:将properties文件放入resources文件夹下,不能直接放入根目录,要建立相应的包
例如:
原结构:
删除java下的properties,移动properties文件到resources下,如图:
经测试,
- 执行process-resources,class文件夹下包含src/main/resources下的所有*.properties文件
- 执行compile,class文件夹下包含src/main/resources下的文件,相应的包中包含*.java与*.properties文件