maven配置pom将不是resource下的文件打进包内

方法一:配置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的packgeinstall有效,但是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>-->
          <!--    &lt;!&ndash; 过滤后缀为pem、pfx的证书文件 &ndash;&gt;-->
          <!--    <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>

猜你喜欢

转载自blog.csdn.net/blood_Z/article/details/132084567