You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Maven插件将编译阶段生成的XML文件纳入同一构建JAR包

搞定这个问题很简单,核心就是让生成的config-all.xml进入Maven的target/classes目录——因为项目的主JAR(test-one-0.1-SNAPSHOT.jar)就是从这个目录打包出来的。下面给你两种可行的配置方案:

方案一:用maven-resources-plugin复制生成文件到classes目录

这是最直接的方式,我们可以在pom.xml中添加一个插件执行逻辑,在compile阶段完成后自动把target下的config-all.xml复制到target/classes目录。

修改你的pom.xml,在<build><plugins>节点里添加以下配置:

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>3.3.1</version>
  <executions>
    <execution>
      <id>copy-generated-config</id>
      <!-- 确保在compile阶段之后执行,此时config-all.xml已经生成 -->
      <phase>compile</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <!-- 输出目录就是项目的classes目录,主JAR会打包这里的内容 -->
        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
        <resources>
          <resource>
            <!-- 源目录是target,也就是config-all.xml生成的位置 -->
            <directory>${project.build.directory}</directory>
            <includes>
              <include>config-all.xml</include>
            </includes>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>

方案二:调整assembly描述符(可选,同步到assembly生成的目录)

如果你还希望assembly插件生成的目录中也包含这个XML文件,可以修改你的my-custom-descriptor.xml,在<fileSets>节点下新增一个fileSet配置:

<fileSets>
  <!-- 保留原有的fileSet配置 -->
  <fileSet>
    <directory>coherence</directory>
  </fileSet>
  <!-- 添加这个配置来包含生成的config-all.xml -->
  <fileSet>
    <directory>${project.build.directory}</directory>
    <includes>
      <include>config-all.xml</include>
    </includes>
    <outputDirectory>/</outputDirectory>
  </fileSet>
</fileSets>

验证配置是否生效

执行mvn clean compile package命令后,你可以做两个检查:

  • 查看target/classes目录下是否存在config-all.xml
  • 解压target/test-one-0.1-SNAPSHOT.jar,确认里面包含了这个XML文件

这样就能确保生成的配置文件被正确打包进你的主JAR包了。

内容的提问来源于stack exchange,提问作者Babu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:52:46