Maven - 札记 - [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy

太叔弘壮
2023-12-01

Centos - 目录



一、问题描述


1. 现象

执行 Maven deploy 生命周期提示以下信息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project xxx: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

2. 原因

deploy 插件 2.7 版本和 2.8 版本有配置上的差异。

  • 2.7 版本需要在项目的 pom.xml 文件中配置上传的仓库信息(以下内容仅供参考,请根据自己的仓库信息自行调整
    <distributionManagement>
    	<repository>
    		<id>rdc-release</id>
    		<url>https://packages.aliyun.com/maven/repository/xxx-release-xxx/</url>
    	</repository>
    	<snapshotRepository>
    		<id>rdc-snapshot</id>
    		<url>https://packages.aliyun.com/maven/repository/xxx-snapshot-xxx/</url>
    	</snapshotRepository>
    </distributionManagement>
    
  • 2.8 版本会使用 setting.xml 中的配置(以下内容仅供参考,请根据自己的仓库信息自行调整
    <profiles>
    	<profile>
    		<id>rdc</id>
    		<properties>
    			<altReleaseDeploymentRepository>
    				rdc-releases::default::https://packages.aliyun.com/maven/repository/xxx-release-xxx/
    			</altReleaseDeploymentRepository>
    			<altSnapshotDeploymentRepository>
    				rdc-snapshots::default::https://packages.aliyun.com/maven/repository/xxx-snapshot-xxx/
    			</altSnapshotDeploymentRepository>
    		</properties>
    	</profile>
    </profiles>
    

二、解决方案


根据自己情况选择对应解决方案

  • 不想在 pom.xml 配置仓库信息(解决方案:在 pom.xml 中指定 deploy 版本为 2.8+)
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-deploy-plugin</artifactId>
    	<version>2.8</version>
    </plugin>
    
  • 不想配置 deploy 版本信息,想使用 deploy 默认版本(解决方案:在 pom.xml 配置仓库信息)
    <distributionManagement>
    	<repository>
    		<id>rdc-release</id>
    		<url>https://packages.aliyun.com/maven/repository/xxx-release-xxx/</url>
    	</repository>
    	<snapshotRepository>
    		<id>rdc-snapshot</id>
    		<url>https://packages.aliyun.com/maven/repository/xxx-snapshot-xxx/</url>
    	</snapshotRepository>
    </distributionManagement>
    
 类似资料: