方法一:配置resources目录
这个方法,既可以配置打包,也设置了idea运行时的配置
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<!-- 包含目录 -->
<!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,只处理如下配置中包含的资源类型 -->
<includes>
<!-- 包含config配置 -->
<include>**/config/**</include>
<!-- 包含xml -->
<include>**/*.xml</include>
<!--<include>**/*.properties</include>-->
<!--<include>**/*.xml</include>-->
<!--<include>**/*.yml</include>-->
</includes>
<!--排除目录-->
<!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,不处理如下配置中包含的资源类型(剔除下如下配置中包含的资源类型)-->
<!--<excludes>-->
<!-- <exclude>**/*.yaml</exclude>-->
<!--</excludes>-->
<!-- 输出目录 -->
<!-- maven default生命周期,process-resources阶段执行maven-resources-plugin插件的resources目标处理主资源目下的资源文件时,指定处理后的资源文件输出目录,默认是${build.outputDirectory}指定的目录-->
<!--<targetPath>${build.outputDirectory}</targetPath> -->
<!-- 是否过滤 -->
<!--<filtering>true</filtering>-->
</resource>
</resources>
</build>
方法二:配置maven插件
- 要注意,这个插件只对maven的
packge
和install
有效,但是idea运行时,这些内容依然没有打包,所以运行会缺少文件,idea运行要使用上面那个方法。 - 下面的配置不止能配置那些打包进去,也可以配置排除某些目录。
<!-- 设置打包的资源文件 要注意这个只在打包时生效,idea运行不生效-->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-xmls</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<!--<excludes>-->
<!-- <exclude>**/*.yaml</exclude>-->
<!--</excludes>-->
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-config</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/config</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/config/*.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
<!--<configuration>-->
<!-- <!– 过滤后缀为pem、pfx的证书文件 –>-->
<!-- <nonFilteredFileExtensions>-->
<!-- <nonFilteredFileExtension>pem</nonFilteredFileExtension>-->
<!-- <nonFilteredFileExtension>pfx</nonFilteredFileExtension>-->
<!-- <nonFilteredFileExtension>p12</nonFilteredFileExtension>-->
<!-- </nonFilteredFileExtensions>-->
<!--</configuration>-->
</plugin>
配置打包时排除某个目录方式二
这样打出的jar包就没有**/config/**,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/config/**</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>theMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>