Maven的部署:部署文件工作,但Maven的部署不工作

时间:2019-05-18 18:50:40

标签: java maven deployment artifactory http-status-code-401

我正在尝试使用命令:maven deploy将Maven工件部署到Artifactory存储库中。

我遵循了Maven文档和JFrog的指示:

https://maven.apache.org/plugins/maven-deploy-plugin/usage.html

https://www.jfrog.com/confluence/display/RTF/Maven+Repository#MavenRepository-DeployingArtifactsThroughArtifactory

目前,maven deploy:deploy-file有效。

我认为存储在settings.xml中的凭据和相应的存储库ID是正确的。

但是在运行maven deploy时出现错误:

[错误]无法在项目my-app上执行目标org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy(默认部署):无法部署工件:无法传输工件com .mvn.deployment:my-app:jar:1.0-20190518.184733-1从/到快照

返回码是:401,ReasonPhrase:未经授权。 -> [帮助1]

您是否知道为什么部署文件可以工作并且部署不能正常工作?

谢谢

maven deploy:部署文件正在工作:

mvn deploy:deploy-file -Durl=REPO_URL \
                      -DrepositoryId="snapshots" \
                      -Dfile=PATH_TO_JAR \
                      -DgroupId="Project" \
                      -DartifactId="test-project" \
                      -Dversion="0.0.1-SNAPSHOT"

当mvn deploy出现错误时:

mvn deploy

ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-
plugin:2.8.2:deploy (default-deploy) on project my-app: Failed to deploy 
artifacts: Could not transfer artifact 
com.mvn.deployment:my-app:jar:1.0-20190518.184733-1 from/to snapshots

Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

更新:

我使用不同版本的maven进行了一些测试,发现问题从版本3.5.0开始出现,mvn deploy命令在maven 3.3.9上有效,并且我认为它与3.5版中的新版本的maven-wagon有关。 0他们将Maven Wagon从2.10升级到2.12。

通过将此配置添加到我的pom.xml中 mvn deploy 即可:

  <extension>
     <groupId>org.apache.maven.wagon</groupId>
     <artifactId>wagon-http</artifactId>
     <version>2.10</version>
  </extension>

2 个答案:

答案 0 :(得分:2)

我使用不同版本的maven进行了一些测试,发现问题从版本3.5.0开始出现,mvn deploy命令在maven 3.3.9上有效,并且我认为它与3.5版中的新版本的maven-wagon有关。 0他们将Maven Wagon从2.10升级到2.12。

通过将此配置添加到我的pom.xml mvn deploy作品中:

<build>
     <plugins>
         <!-- It is a good idea to also set the maven-deploy-plugin version here -->
     </plugins>
     <extensions>
         <extension>
             <groupId>org.apache.maven.wagon</groupId>
             <artifactId>wagon-http</artifactId>
             <version>2.10</version>
         </extension>
     </extension>
</build>

感谢Adrien提供了maven-deploy-plugin版本建议。

答案 1 :(得分:0)

我确认,您的回答正确。即使在settings.xml中正确指定,mvn deploy:deploy也不会使用凭据上传到存储库,从而产生Failed to deploy artifacts: Could not transfer artifact: Failed to transfer file xyz.jar with status code 401错误。

  • mvn deploy:deploy-file有效,
  • mvn deploy:deploy不起作用:它不使用settings.xml中的用户/密码上传到存储库。

您的解决方案是正确的:

<build>
     <plugins>
         <!-- It is a good idea to also set the maven-deploy-plugin version here -->
     </plugins>
     <extensions>
         <extension>
             <groupId>org.apache.maven.wagon</groupId>
             <artifactId>wagon-http</artifactId>
             <version>2.10</version>
         </extension>
     </extension>
</build>

此答案基于Hamza的工作。