【发布时间】:2014-01-22 09:21:12
【问题描述】:
我正在编写一个“编译器插件”,并使用 Maven 作为构建系统。大约一周前,我有一个(第一个)工作版本,并签入了代码。如果我今天重建那个版本,它就不再工作了,所以我的第一个怀疑是某些(间接?)的版本发生了变化依赖。是否有 Maven 插件,可以比较两个不同时间点(现在和“一周前”)之间 POM 的有效依赖关系?
换一种说法,是否有可能找出何时某个特定版本在 Maven 存储库中可用?
【问题讨论】:
-
你在 pom 中指定依赖的版本;他们不会改变。 (?)
-
什么样的编译器插件?什么目的?除此之外,如果您正确定义了带有发布的版本,它们将永远不会改变。如果您使用过 SNAPSHOT,那就另当别论了。
-
@BrianRoach 如果您依赖快照版本甚至发布版本,他们可以,如果 repo 允许更新发布版本(这可以通过 Nexus),那么传递依赖关系可能会改变。
-
猜测您将无法恢复依赖项更改,即使您愿意,所以您也可以修复代码。为了将来参考,请确保您在
settings.xml的存储库中将updatePolicy设置为never。这样至少在您选择使用-U选项之前,您的本地副本不会更改。 -
@BrianRoach AFAIK 仅当您指定所有内容的确切版本时。即使我只指定了 direct 依赖项的确切版本(我还没有),但那些有自己的依赖项的“范围”,这是我的间接依赖项,然后是“自动 Maven 更新" 可以拉取刚刚发布的新版本。
标签: java maven dependencies