如何配置pom.xml让Maven同时部署jar和json构件到远程仓库
Maven部署时自动同步上传jar和json文件的pom配置方法
直接在项目pom.xml中完成以下配置,执行标准mvn deploy命令即可自动将主jar包、target目录下生成的json配置文件一同上传到远程Maven仓库,无需额外传入命令行参数。
具体配置步骤
- 保留原有
distributionManagement节点的远程仓库配置、以及mavensettings.xml中的server账号配置,不需要修改这部分原有内容。 - 在
<build><plugins>节点下添加maven-deploy-plugin的配置,使用3.0.0-M2及以上版本(低版本不支持多文件部署配置),禁用插件默认的单文件部署逻辑,绑定自定义的多文件部署逻辑到deploy阶段:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.0.0-M2</version> <executions> <!-- 禁用默认的单jar部署逻辑,避免重复上传构件 --> <execution> <id>default-deploy</id> <phase>none</phase> </execution> <!-- 自定义多文件部署逻辑,绑定到deploy阶段 --> <execution> <id>deploy-multi-files</id> <phase>deploy</phase> <goals> <goal>deploy-file</goal> </goals> <configuration> <!-- 直接复用distributionManagement中配置的仓库地址与id,无需硬编码 --> <url>${project.distributionManagement.repository.url}</url> <repositoryId>${project.distributionManagement.repository.id}</repositoryId> <!-- 主构件jar包路径,通过Maven内置变量自动适配项目版本、构建路径 --> <file>${project.build.directory}/${project.build.finalName}.jar</file> <pomFile>${project.basedir}/pom.xml</pomFile> <!-- 待部署的所有文件列表,按顺序填写主jar、json配置文件路径 --> <files> <file>${project.build.directory}/${project.build.finalName}.jar</file> <file>${project.build.directory}/${project.build.finalName}.json</file> </files> <!-- 与文件列表顺序一一对应的classifier,主jar无额外classifier留空即可,json可按需自定义标识 --> <classifiers> <classifier/> <classifier>config</classifier> </classifiers> <!-- 与文件列表顺序一一对应的文件类型 --> <types> <type>jar</type> <type>json</type> </types> </configuration> </execution> </executions> </plugin> </plugins> </build> <!-- 原有远程仓库配置保持不变即可 --> <distributionManagement> <repository> <id>your-repo-id</id> <url>your-remote-maven-repo-url</url> </repository> </distributionManagement>
注意事项
files、classifiers、types三个列表的长度必须保持一致,元素顺序一一对应。- json文件的classifier可以根据实际业务需求自定义,比如配置为
site、config等,只要符合项目的构件命名规范即可。 - 配置完成后不需要加任何额外命令参数,直接执行
mvn deploy就会自动完成两类文件的上传。
内容的提问来源于stack exchange,提问作者Shine
相关产品推荐
相关产品推荐

