如何在依赖某个jar的Jenkins中使构建失败

德托尼

如果在Java Maven项目中使用了某个jar,是否有办法使Jenkins的构建失败?

例如,我知道org.example:badartifact:1.0.1有一个安全漏洞。我告诉了所有人,他们修复了他们的项目...,但是也许一些第三方工件将它们作为传递对象而带给了他们,但没人意识到这一点。

或者也许有人忘记了这个旧错误...

因此,我希望最好在Jenkins中进行最后一次检查,以免我们最终不包含包含该特殊工件的项目。

您如何处理这种情况,您使用什么工具?(将库列入白名单?将库列入黑名单?等)

任何建议表示赞赏。

A_Di-Matteo

可能的Maven解决方案
您可以拥有一个公司超级POM(公司/部门/团队内所有Maven项目的父POM),并在该超级POM中配置Maven Enforcer插件(其bannedDependencies规则)以禁止任何库,版本甚至范围。我亲自使用了这个选项,即使是发生了一些小错误(例如,不在测试范围内的junit都会使构建失败)。

此解决方案是集中式解决方案,因此易于维护,但是要求所有项目都具有相同的父POM,并且开发人员可以随时更改父pom,因此可以跳过此管理。另一方面,集中式父POM对于依赖项管理,通用配置文件,报告等非常有用。

注意:例如,您不能通过默认的活动配置文件在Jenkins服务器的Maven设置中对其进行配置,例如,以便将其应用于所有正在运行的Maven构建,因为Maven限制了设置所提供的配置文件中对构建的自定义(设计选择,以限制外部影响,从而使故障排除更加容易)。我过去曾尝试过并碰壁。

外部文件中的配置文件

从严格意义上讲,在外部文件(即settings.xml或profiles.xml)中指定的配置文件是不可移植的。似乎很有可能更改构建结果的任何内容都限于POM中的内联配置文件。诸如存储库列表之类的东西可能只是经过批准的工件的专有存储库,而不会改变构建的结果。因此,您将只能修改和部分,以及一个额外的部分

可能的Jenkins解决方案
如果您想直接在Jenkins中集中管理,因此要独立于Maven构建,我过去已经应用了以下这些解决方案(它们非常有效):

  • Jenkins Text Finder插件:如果在构建输出中发现了正则表达式或匹配的文本,则可以使构建失败。在您的情况下,您可以让Jenkins构建步骤始终执行mvn dependency:tree,因此将依赖项列表(甚至是传递性)作为构建输出的一部分。然后,与您的禁止依赖项匹配的Text Finder规则将与之匹配,并使构建失败。
  • 失败Build Jenkins插件:与上面的类似,但是具有对配置的失败原因的集中管理。同样,失败是基于匹配的文本,但不需要构建配置:默认情况下,它将应用于所有构建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使失败的 DotnetCore 构建破坏 Jenkins 构建?

来自分类常见问题

如何在IntelliJ IDEA中使用SBT构建Uber JAR(Fat JAR)?

来自分类Dev

Jenkins Workflow插件如何使构建失败

来自分类Dev

如何在PPA中使用依赖项进行pbuilder-dist构建?

来自分类Dev

如何在PPA中使用依赖项进行pbuilder-dist构建?

来自分类Dev

当Maven单元测试失败时,如何使Jenkins构建失败?

来自分类Dev

如何在Jenkins声明式管道中使用节流并发构建

来自分类Dev

如何在Jenkins管道中使用动态数据构建并行和顺序阶段的组合

来自分类Dev

如何在CI中使用访问令牌,例如Jenkins或CAKE构建?

来自分类Dev

如何在Gradle构建中使用自定义proguard.jar?

来自分类Dev

JHipster Jenkins构建失败

来自分类Dev

如何在 Jenkins 上定期构建?

来自分类Dev

Jenkins,如何在“QuietDown”期间触发构建

来自分类Dev

传递依赖导致构建失败

来自分类Dev

如何在EJB jar文件中包含jar依赖项?

来自分类Dev

如何在EJB jar文件中包含jar依赖项?

来自分类Dev

用依赖Maven构建jar

来自分类Dev

Jenkins 构建失败,条带无法确定任务 ':stripe:check' 的依赖关系

来自分类常见问题

Execute Shell如何/何时在Jenkins中将构建标记为失败?

来自分类Dev

如果JUnit测试出错,如何标记jenkins构建失败?

来自分类Dev

如何始终在Jenkins中运行构建步骤并忽略失败

来自分类Dev

仅在构建失败时如何清理Jenkins工作区

来自分类Dev

如果没有运行测试,如何使Jenkins构建失败?

来自分类Dev

编写Jenkins groovy脚本-如何确定哪个构建步骤失败

来自分类Dev

Jenkins管道构建失败后,如何发送Slack通知?

来自分类Dev

编写Jenkins groovy脚本-如何确定哪个构建步骤失败

来自分类Dev

如何在XCode中使每个构建变量

来自分类Dev

如果.cshtml文件中存在razor / C#错误,如何在VS 2013中使构建失败?

来自分类Dev

如何在jenkins中使用已登录的用户凭证列出svn文件夹作为构建参数?

Related 相关文章

  1. 1

    如何使失败的 DotnetCore 构建破坏 Jenkins 构建?

  2. 2

    如何在IntelliJ IDEA中使用SBT构建Uber JAR(Fat JAR)?

  3. 3

    Jenkins Workflow插件如何使构建失败

  4. 4

    如何在PPA中使用依赖项进行pbuilder-dist构建?

  5. 5

    如何在PPA中使用依赖项进行pbuilder-dist构建?

  6. 6

    当Maven单元测试失败时,如何使Jenkins构建失败?

  7. 7

    如何在Jenkins声明式管道中使用节流并发构建

  8. 8

    如何在Jenkins管道中使用动态数据构建并行和顺序阶段的组合

  9. 9

    如何在CI中使用访问令牌,例如Jenkins或CAKE构建?

  10. 10

    如何在Gradle构建中使用自定义proguard.jar?

  11. 11

    JHipster Jenkins构建失败

  12. 12

    如何在 Jenkins 上定期构建?

  13. 13

    Jenkins,如何在“QuietDown”期间触发构建

  14. 14

    传递依赖导致构建失败

  15. 15

    如何在EJB jar文件中包含jar依赖项?

  16. 16

    如何在EJB jar文件中包含jar依赖项?

  17. 17

    用依赖Maven构建jar

  18. 18

    Jenkins 构建失败,条带无法确定任务 ':stripe:check' 的依赖关系

  19. 19

    Execute Shell如何/何时在Jenkins中将构建标记为失败?

  20. 20

    如果JUnit测试出错,如何标记jenkins构建失败?

  21. 21

    如何始终在Jenkins中运行构建步骤并忽略失败

  22. 22

    仅在构建失败时如何清理Jenkins工作区

  23. 23

    如果没有运行测试,如何使Jenkins构建失败?

  24. 24

    编写Jenkins groovy脚本-如何确定哪个构建步骤失败

  25. 25

    Jenkins管道构建失败后,如何发送Slack通知?

  26. 26

    编写Jenkins groovy脚本-如何确定哪个构建步骤失败

  27. 27

    如何在XCode中使每个构建变量

  28. 28

    如果.cshtml文件中存在razor / C#错误,如何在VS 2013中使构建失败?

  29. 29

    如何在jenkins中使用已登录的用户凭证列出svn文件夹作为构建参数?

热门标签

归档