首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用maven部署项目,错误代码409

无法使用maven部署项目,错误代码409
EN

Stack Overflow用户
提问于 2019-12-02 15:26:39
回答 2查看 1K关注 0票数 2

我正在使用azure devops,并试图使用maven构建代码和上传,但我收到了以下错误消息。

代码语言:javascript
复制
[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文件作为参考。

代码语言:javascript
复制
<?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。但是好像我的问题不一样了,请指导我。

EN

回答 2

Stack Overflow用户

发布于 2020-06-10 06:54:49

这不是一个完整的答案,但它可能会有一点帮助。我对Azure Dev Ops和Maven都是新手,所以请原谅并更正评论中的任何错误。我已经重复了一些事情,很明显,操作员知道这是为了让其他人更清楚地知道答案。

Maven允许您部署两种工件:

  1. SNAPSHOTS

代码语言:javascript
复制
- 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)

  1. RELEASES

代码语言:javascript
复制
- 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.

409 = Resource Conflict

这可能意味着

项目已发布,不能是overwritten

  • The项目,但由于类型错误,因此无法发布
  • 项目。例如,将版本发布到只接受快照的存储库,或者将快照发布到只接受release

的存储库

另请参阅:How to update a maven dependency with a same version number in Azure Artifacts (您不能获取发行版)

如果工件已经存在,我不确定如何告诉maven部署失败是可以接受的。明显且错误的黑客攻击(在Linux中)是:

代码语言:javascript
复制
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的身份问过这个问题

票数 0
EN

Stack Overflow用户

发布于 2020-11-25 04:12:03

在Azure Devops中,在工件存储库提要中使用you cannot reuse version numbers。例如,如果您已经部署了v2.0,并将其从提要中删除,那么在将来的任何时候尝试重新部署具有相同名称的v2.0工件时,都会收到HTTP409错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59134329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档