Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 警告开发人员过时的依赖关系_Java_Maven_Continuous Integration_Hudson_Build Process - Fatal编程技术网

Java 警告开发人员过时的依赖关系

Java 警告开发人员过时的依赖关系,java,maven,continuous-integration,hudson,build-process,Java,Maven,Continuous Integration,Hudson,Build Process,在Maven、Hudson或Sonar中是否有一种方法可以在构建中包含某些过时的工件时发出警告 例如,考虑拥有多个内部业务罐。这些罐子的某些版本可能会经历寿命终止阶段。在这段时间内,如果发生的任何构建都会发出一些排序警告,并将用户引导到有关该问题的一些文档中,那就太好了 明确地说,构建不应该失败。此外,我们只希望将此逻辑应用于某一组工件,而不是所有工件。使用maven依赖插件,您可以运行此逻辑 mvn versions:display-dependency-updates 这将显示存储库中具有

在Maven、Hudson或Sonar中是否有一种方法可以在构建中包含某些过时的工件时发出警告

例如,考虑拥有多个内部业务罐。这些罐子的某些版本可能会经历寿命终止阶段。在这段时间内,如果发生的任何构建都会发出一些排序警告,并将用户引导到有关该问题的一些文档中,那就太好了


明确地说,构建不应该失败。此外,我们只希望将此逻辑应用于某一组工件,而不是所有工件。

使用maven依赖插件,您可以运行此逻辑

mvn versions:display-dependency-updates
这将显示存储库中具有更新版本的所有工件的列表。只要让开发人员每隔一段时间运行一次,并进行相应的更新。

您可以尝试使用指定不再允许的依赖项

插件的目标是要么强制执行规则(从而导致构建失败),要么打印违规报告

更新 我使用中的dependencies报告查找过时库的跨项目使用情况。 我知道你也在使用声纳,但以防万一,这里有一个例子:

  • 使用
(该信息来自Sonar分析的每个项目的Maven POM)

我认为你真正想要的东西,目前并不存在。。。。一个像标准Maven enforcer插件一样工作的插件,但它是从Sonar中配置的,并在Sonar中引发违规行为


你为什么不把这作为一个想法发布在Sonar JIRA上?

这是不可执行的,而且它不限于某个工件子集(这两者在这里都很重要)。然而,你给了我一个在哈德逊每周工作中使用它的想法。我找不到一种方法来限制它检查哪些工件。顺便说一句,tt还显示插件对版本格式相当挑剔;我注意到它认为Spring2.5.6大于3.0.5.0。如果我们决定以更通用的方式使用它,那么必须创建一个版本规则配置似乎令人望而生畏。是的,版本策略假设所有版本都具有相同的模式。我有一个例子,a.b.c.d大于e.f,但它认为e.f较新。这并不理想,但是通过一个shell脚本运行插件进行一些过滤是很容易的。虽然不是100%你想要的。+1对于一个我从来没有听说过的想法,即使它没有解决op的问题只是一个模糊的想法-如果你将过时的工件移动到另一个存储库,也许有某种方法可以在该存储库被点击时发出警告?@Andrewspuncer:你知道一种切实可行的方法吗?我不这么认为。“安德鲁斯潘塞,我认为这是个坏主意。”移动或移除人工制品会破坏使用它们的构建。我认为这里的目标是生成构建时间警告即使它没有破坏任何东西,大多数时候旧库已经在
~/.m2/存储库中了,远程库也不会被触及。@MarkO'Connor您的设置中有两个存储库,这样它就不会破坏任何东西。现在看来这很有希望。我只需要找到一种方法来确保保留排除列表。也许在Hudson服务器的超级pom中保留一个列表。对于确保enforcer的执行和维护,您有什么建议吗?实际上,我不使用enforcer插件来分析依赖关系。相反,我使用Sonar(见更新)如果你使用greylist(我认为这是产生警告而不是失败的正确术语),那么将它保持在可见的位置是很重要的。我喜欢声纳的想法。@AndrewSpencer“greylist”我喜欢!插件名称的好建议:-)