首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >沙箱Maven构建在Jenkins上

沙箱Maven构建在Jenkins上
EN

Stack Overflow用户
提问于 2015-04-16 06:16:30
回答 4查看 531关注 0票数 0

我正试图为下面的谜题找到一个解决方案。我有由maven管理的java项目,它需要一些本地依赖项才能工作(运行单元和集成测试)。这些都是以deb包的形式提供的,这些包需要在运行生成之前安装。

我用詹金斯做CI。由于与其他构建的冲突,无法在Jenkins节点上安装本机依赖项,而且这些依赖项可能经常更改。我现在所做的不是创建Jenkins作业类型' maven ',而是创建'freestyle‘,并使用pbuilder创建一个干净的沙箱,安装所需的一切并调用maven构建。

这很好,但我正在失去Jenkins maven的好处,比如自动上游项目,在依赖关系更改时触发构建,等等。Jenkins根本不知道maven在那里。

最后,我的问题。是否有一种方法可以实现这两种方法:隔离构建,这样安装的库不会影响其他构建,并利用Jenkins的“魔力”应用于maven构建及其依赖项?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-18 13:51:57

这个问题可以通过使用分布式Jenkins构建来解决。可以将从代理配置为提供干净的环境(例如通过VM、docker、.)对于每个构建,并在构建完成后将其拆卸。通过这种方式,Jenkins作业可以是Maven类型,并且任何由预构建步骤所做的更改都不会影响其他人。

更多信息可以找到这里

票数 1
EN

Stack Overflow用户

发布于 2015-04-16 06:22:59

您可以将构建分成三个作业,这将触发下一个作业。

  1. 创造所需的环境
  2. 运行maven作业
  3. 清理
票数 1
EN

Stack Overflow用户

发布于 2015-04-16 13:36:54

即使是自由式作业也有“调用顶级Maven目标”。您可以使用它获得"maven的好处“,同时还可以运行其他构建步骤。

有一个选项是“使用私有Maven存储库”,这将确保它将使用相对于工作区的.m2/repository文件夹位置。如果需要分离为多个作业,则可以在这些作业之间使用“自定义/共享工作区”。

即使在Maven风格的作业中,也有使用私有存储库的选项,这样一个作业就不会影响另一个作业。

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

https://stackoverflow.com/questions/29666695

复制
相关文章

相似问题

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