You need to enable JavaScript to run this app. 如何配置Maven在JAR打包后自动将生成文件多副本输出到不同文件夹
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Maven在JAR打包后自动将生成文件多副本输出到不同文件夹

Maven自动分发构建产物到测试服目录配置方案

无需修改IDE配置,通过pom.xml绑定Maven插件到打包阶段,即可在mvn package完成后自动将生成的JAR包复制到所有指定的测试服plugins目录,无额外手动操作。

前置准备

  • 确认所有目标测试服plugins目录的绝对路径,Windows、Linux环境路径均支持
  • 提前创建所有目标plugins目录,避免复制任务失败

具体配置步骤

1. 定义路径变量(推荐配置,便于后续维护)

在pom.xml的<properties>节点下新增自定义变量,后续调整分发路径仅需修改该节点内容:

<properties>
    <!-- 替换为你实际的测试服插件目录路径 -->
    <test.server.lobby.plugins>D:/mc-test/lobby/plugins</test.server.lobby.plugins>
    <test.server.survival.plugins>D:/mc-test/survival/plugins</test.server.survival.plugins>
    <test.server.bungee.plugins>D:/mc-test/bungee/plugins</test.server.bungee.plugins>
    <!-- 自动匹配构建生成的JAR路径,无需手动修改 -->
    <generated.plugin.jar>${project.build.directory}/${project.build.finalName}.jar</generated.plugin.jar>
</properties>

2. 配置自动复制插件

在pom.xml的<build><plugins>节点下新增maven-antrun-plugin配置,绑定到package阶段触发执行:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <!-- 按需新增/删除copy行,对应需要分发的目标目录 -->
                    <copy file="${generated.plugin.jar}" todir="${test.server.lobby.plugins}" />
                    <copy file="${generated.plugin.jar}" todir="${test.server.survival.plugins}" />
                    <copy file="${generated.plugin.jar}" todir="${test.server.bungee.plugins}" />
                    <!-- 可选:复制前删除目标目录下的旧版JAR,避免版本冲突 -->
                    <!-- <delete file="${test.server.lobby.plugins}/${project.build.finalName}.jar" /> -->
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

使用规则

  • 配置完成后执行原有mvn package命令,或在IntelliJ Maven面板双击Lifecycle下的package,打包完成后会自动触发复制逻辑
  • 临时不需要自动分发时,可执行mvn package -Dantrun.skip=true跳过复制任务,仅生成target目录下的JAR
  • 若目标路径包含空格或中文,需在路径外补充双引号,例如todir="D:/我的测试服/lobby/plugins"

注意事项

  • 不要硬编码JAR文件名,使用${project.build.finalName}变量会自动匹配pom中配置的最终打包名,修改artifactId、version或finalName时无需调整分发配置
  • Windows环境路径直接使用正斜杠/即可,无需转义反斜杠\
  • 若出现权限不足报错,检查Maven运行账号对目标目录是否有读写权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 01:15:10