我正在使用azure devops,并试图使用maven构建代码和上传,但我收到了以下错误消息。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file
(default-cli) on project ojdbc7:
com.huber.abc:ojdbc7:jar:2.0 from
to dev-azure-com-abc-devops-abc-artifacts (https://pkgs.dev.azure.com/ABC-DevOps/_packaging/abc-
Artifacts/maven/v1):
Failed to transfer file
https://pkgs.dev.azure.com/abc-DevOps/_packaging/abc-
Artifacts/maven/v1/com/huber/abc/ojdbc7/2.0/ojdbc7-2.0.jar with status code 409 -> [Help 1]Failed to
deploy artifacts:
Could not transfer artifact我发现了一个类似的问题thread。根据这个链接,不要使用快照,而要使用release。所以我在这里添加了我的pom.xml文件作为参考。
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myorg.abc</groupId>
<artifactId>ojdbc7</artifactId>
<version>2.0</version>
</project>我不知道如何解决这个问题。我见过很多版本的error 409。但是好像我的问题不一样了,请指导我。
发布于 2020-06-10 06:54:49
这不是一个完整的答案,但它可能会有一点帮助。我对Azure Dev Ops和Maven都是新手,所以请原谅并更正评论中的任何错误。我已经重复了一些事情,很明显,操作员知道这是为了让其他人更清楚地知道答案。
Maven允许您部署两种工件:
- A snapshot is a development version of a package.
- Snapshots have the suffix -SNAPSHOT. E.g. 1.2.0-SNAPSHOT
- SNAPSHOTS are mutable. A deploy operation can replace a SNAPSHOT with a new version (more recent development versions can replace development versions)
- Any version not ending in the suffix -SNAPSHOT is considered a release version.
- Releases are immutable. A deploy operation will fail if the release has already been deployed to the repository.
这可能意味着
项目已发布,不能是overwritten
的存储库
另请参阅:How to update a maven dependency with a same version number in Azure Artifacts (您不能获取发行版)
如果工件已经存在,我不确定如何告诉maven部署失败是可以接受的。明显且错误的黑客攻击(在Linux中)是:
mvn deploy || /bin/true我不确定Azure中的等价物是什么,或者maven是否有一个选项可以让它以这种方式运行。这种攻击很糟糕,因为如果由于其他原因导致部署步骤失败,它将报告部署步骤成功。
有一个插件https://github.com/chonton/exists-maven-plugin可以做到这一点,请参阅https://stackoverflow.com/a/53623937/1569204。同样,我不确定如何在Azure上启用此功能。
我曾以separate question of my own的身份问过这个问题
发布于 2020-11-25 04:12:03
在Azure Devops中,在工件存储库提要中使用you cannot reuse version numbers。例如,如果您已经部署了v2.0,并将其从提要中删除,那么在将来的任何时候尝试重新部署具有相同名称的v2.0工件时,都会收到HTTP409错误。
https://stackoverflow.com/questions/59134329
复制相似问题