首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven唯一快照和依赖关系收敛

Maven唯一快照和依赖关系收敛
EN

Stack Overflow用户
提问于 2011-12-28 22:44:53
回答 3查看 1.5K关注 0票数 4

在我的项目中,maven-enforcer规则使用非唯一快照(这是Maven 3中唯一支持的快照)在多模块构建中失败。

例如,假设->是“依赖于”关系,并且:

  1. 模块-A ->模块-B ->模块-C
  2. 模块-A ->模块-C

而模块B和模块C作为独特的构建出现在快照存储库中。POM中所有声明的模块版本目前都是1.0-快照。

现在,A单元的构建失败了:

mvn -pl Module-A install

在以下方面的成果:

代码语言:javascript
运行
复制
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce) @ Module-A ---
[ERROR] 
Dependency convergence error for com.vivosys.project:Module-C:1.0-SNAPSHOT paths to dependency are:
+-com.vivosys.project:Module-A:1.0-SNAPSHOT
  +-com.vivosys.project:Module-B:1.0-20111228.032527-8
    +-com.vivosys.project:Module-C:1.0-SNAPSHOT
and
+-com.vivosys.project:Module-A:1.0-SNAPSHOT
  +-com.vivosys.project:Module-C:1.0-20111228.032527-6

传递依赖项被解析为非唯一快照生成,但直接依赖项被解析为唯一快照生成。

我使用的是maven 3.0.3,maven-enforcer 1.0.1。存储库是Artifactory 2.4.2,使用的是唯一快照选项(这是Artifactory推荐的,因为Maven 3不再支持非唯一快照)。

解决办法?

Update:看起来像工件允许重写maven客户端行为并将非唯一的快照存储在存储库中。但是,出于某种原因,Artifactory不推荐这样做(请参阅http://wiki.jfrog.org/confluence/display/RTF/Local+Repositories上的"Maven 3“),因此其他解决方案仍然是受欢迎的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-15 08:42:43

此bug已在1.1版中修复(MENFORCER-118)和已发布

票数 4
EN

Stack Overflow用户

发布于 2011-12-29 07:09:08

您已经命中了执行器插件错误(作为增强而提出)。

也许,严格地说,作为一种解决办法,您可以显式地声明传递依赖C为A的依赖项?

票数 2
EN

Stack Overflow用户

发布于 2012-01-28 21:04:51

MENFORCER-118被解析之前,唯一可用的解决方案似乎是将存储库服务器配置为使用非唯一的管理单元。在Artifactory中,这可以通过:Admin, Repositories完成,选择快照存储库并选择Edit。然后在Nonunique下选择Maven Snapshot Version Behavior

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

https://stackoverflow.com/questions/8662129

复制
相关文章

相似问题

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