maven - 无法将 Maven jar 部署到 Azure DO 存储库
问题描述
我无法在 Azure devops 存储库中部署独立的 jar 文件。使用以下命令调用 maven 上的部署插件:
mvn deploy:deploy-file -Dpackaging="jar" -DrepositoryId="MAVENREPO" -Durl="https://pkgs.dev.azure.com/XXXXXXXXXXXXXXX/q6f55433-87d0-4c87-a6ab-7d5c19f9088b/_packaging/MAVENREPO/maven/v1" -DgroupId="agile" -DartifactId="AgileAPI" -Dversion="1.0" -Dfile="AgileAPI.jar"
我收到以下错误。该文件似乎正在上传到 Azure 存储库,但不知何故未能部署。任何指针将不胜感激。
我已经尝试过使用如上所示的 maven 命令和调用部署插件的 pom.xml 文件。结果是一样的。
Uploading to MAVENREPO: https://pkgs.dev.azure.com/XXXXXXXXXXXXXXX/q6f55433-87d0-4c87-a6ab-7d5c19f9088b/_packaging/MAVENREPO/maven/v1/agile/AgileAPI/1.0/AgileAPI-1.0.jar
Uploading to MAVENREPO: https://pkgs.dev.azure.com/XXXXXXXXXXXXXXX/q6f55433-87d0-4c87-a6ab-7d5c19f9088b/_packaging/MAVENREPO/maven/v1/agile/AgileAPI/1.0/AgileAPI-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.221 s
[INFO] Finished at: 2021-02-09T21:21:43-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project standalone-pom: Failed to deploy artifacts: Could not find artifact agile:AgileAPI:jar:1.0 in MAVENREPO (https://pkgs.dev.azure.com/XXXXXXXXXXXXXXX/q6f55433-87d0-4c87-a6ab-7d5c19f9088b/_packaging/MAVENREPO/maven/v1) -> [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
解决方案
在 Azure Artifact 中将 3rd 方程序集发布到 Maven 源的命令如下:
mvn deploy:deploy-file -Dpackaging="jar" -DrepositoryId="MyFeedName" -Durl="MyFeedURL" -DgroupId="MyGroup" -DartifactId="myFirstApp" -Dversion="jarFileVersion" -Dfile="jarFileLocalPath"
我已经使用通过运行以下命令生成的 Maven 工件进行了测试:
mvn -B archetype:generate -DarchetypeGroupId="org.apache.maven.archetypes" -DgroupId="MyGroup" -DartifactId="myFirstApp"
并使用以下命令获得了成功的结果:
mvn deploy:deploy-file -Dpackaging="jar" -DrepositoryId="{MyFeedName}" -Durl="https://pkgs.dev.azure.com/{org}/TestCase/_packaging/{MyFeedName}/maven/v1" -DgroupId="MyGroup" -DartifactId="myFirstApp" -Dversion="1.0-SNAPSHOT" -Dfile="C:\Users\{username}\myFirstApp\src\main\java\MyGroup\App.java"
注意:
你需要:
1. 将settings.xml
文件添加到${user.home}/.m2
:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>[MyFeedName]</id>
<username>[ORG]</username>
<password>[PERSONAL_ACCESS_TOKEN]</password>
</server>
</servers>
</settings>
2. 将 repo 添加到您的pom.xml
文件中:
<repository>
<id>[FEEDNAME]</id>
<url>https://pkgs.dev.azure.com/{ORG}/{PROJECTNAME}/_packaging/{FEEDNAME}n/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
你可以按照我的步骤,看看你是否在命令中指定了错误的参数。
有用的博客:
https://docs.microsoft.com/en-us/azure/devops/artifacts/maven/publish?view=azure-devops
推荐阅读
- ssl - phpmyadmin 配置期间的 SSL 警告
- angular - 如何同时检测查询参数和片段的变化(或至少以明确定义的顺序)?
- azure - az devops login 无法使用密钥环存储 PAT;回退到文件存储
- spring - Spring Security 中@PreAuthorize 和@PostAuthorize 有什么区别
- python-3.6 - Python 3.6 JSON 字符串到对象的转换
- c# - 如何用列表填充选择器
- string - '格式字符串只能是“G”、“g”、“X”、“x”、“F”、“f”、“D”或“d”。
- python - 如何使用带有 Python 可执行文件的 Mac finder 导入图像
- delphi - Delphi,克隆一个包含孩子的 3DObject
- scala - 重载方法值 Sin 有替代方案