Maven 打包时丢失properties文件

今天在打包项目war文件的时候,突然发现居然每个action包里面的properties文件都没打进来,在网上看了半天终于找到解决方法。

问题:maven执行package命令打包时,src/main/java路径下的properties文件偶尔丢失

解决方式:pom.xml中加入resources配置

<build>
		<finalName>sx-user-cernter-provider</finalName><!--install 后包的名字-->
		<sourceDirectory>src/main/java</sourceDirectory><!-- class文件 的目录 -->
		<resources>			
			<resource><!-- instrall 时会过滤掉 不需要打包的文件-->
				<targetPath>${project.build.directory}/classes/META-INF/spring</targetPath>
				<directory>src/main/resources/META-INF/spring</directory>
				<filtering>true</filtering>
				<excludes>
					<exclude>*.xml</exclude>
					<exclude>*.properties</exclude>
				</excludes>
			</resource>
			<resource><!--配置需要所有的java文件-->
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>


		<plugins>
			<!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<classesDirectory>target/classes/</classesDirectory>
					<excludes>
						<exclude>**/provider.properties</exclude>
						<exclude>*.properties</exclude>
						<exclude>**/datasource/**</exclude>
						<exclude>*.xml</exclude>
					</excludes>
					<archive>
						<addMavenDescriptor>false</addMavenDescriptor>
					</archive>
				</configuration>
			</plugin>
			<!-- 拷贝依赖的jar包到lib目录 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>
								${project.build.directory}/lib
							</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
		</plugins>
	</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文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值