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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven POM (Project Object Model) 文件是 Maven 项目的核心配置文件,其中包含了项目中所有的依赖、插件、构建配置等信息。在 Maven 打包过程中,POM 文件的正确配置非常重要。以下是一个基本的 Maven POM 文件配置示例: ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 项目基本信息 --> <groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <!-- 依赖声明 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <!-- 插件声明 --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.1.2</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>com.example.App</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build> </project> ``` 在上述 POM 文件中,`<groupId>`、`<artifactId>` 和 `<version>` 标签定义了项目的基本信息。`<dependencies>` 标签用于声明项目所依赖的其他库,`<build>` 标签下的 `<plugins>` 标签用于声明项目构建时所需要的插件。 在打包过程中,可以使用以下命令: ``` mvn package ``` 该命令会在当前项目根目录下生成一个名为 `my-app-1.0-SNAPSHOT.jar` 的可执行 JAR 文件,其中包含了项目的所有依赖和代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值