当前位置: 首页 > 面试题库 >

詹金斯:用子项目构建项目的最佳方法

西门嘉石
2023-03-14
问题内容

我们在同一个SVN存储库中有一个包含两个子项目的项目。例如:

svn://ip/svn/ trunk/subproject1
svn://ip/svn/ trunk/subproject2

项目的构建应包括两个子项目的构建结果。为了使构建速度更快,我仅在分别更改了SVN的情况下(在svn:// ip / svn / trunk /
subproject1中)才运行subproject1的构建。对于subproject2同样

最好的方法是什么?我可以做一份工作吗?在这种情况下,我应该如何定义构建触发器?

还是我需要定义3个工作:每个子项目一个或每个项目一个?

任何帮助将不胜感激!最好的问候,迈克尔


问题答案:

使用Jenkins,可以通过多种方式实现这一目标。

  1. 顾名思义,多SCM插件将允许在单个作业中包含多个源存储库。

  2. 您可以定义n相互触发的作业(即相互依赖)。您可以在Build Triggers> 下找到它Build after other projects are built

  3. 还可以选择由主作业控制下游作业。您可以在Post-build Actions> 下找到此选项Build other projects

关于构建触发,您可以使用该poll SCM选项。这不是最有效的方法,但是您的选择可能会受到SVN而不是Git的限制。

我只注意到你也提到整理所有构建结果-您可以通过将单个作业或使用选择,要么实现这一目标aggregate downstream test results之下Post-build Actions

最终,您需要清楚自己的构建策略。在我看来,如果要对任何一个子项目进行更改,则要确保没有任何损坏。我不确定multi-
SCM插件如何应付轮询多个存储库的概念,因此您可能需要考虑这一点。

我想我给了您一些选择来进行尝试;让我知道你是怎么办的。



 类似资料:
  • 问题内容: 我在Mercurial回购中托管了一个Gradle多项目。我想以这种方式设置我的Jenkins:如果我仅将更改提交到1个子项目中,则仅会构建该子项目并将其发布到我的Nexus存储库中。 有人可以给我提示吗?还是完全有可能? 问题答案: 在这里留下将来的最终解决方案。 我们为每个子项目创建了一个单独的Jenkins作业。Jenkins的Mercurial插件允许指定“模块”: 通过在存储

  • 问题内容: 有没有一种方法可以在单个存储库中指定钩子? 现在,我们在“ / etc / mercurial / hgrc”文件中指定了该钩子,但是每次它生成两次,并且为每个存储库中的每次提交生成。 因此,我们要为每个存储库指定一个构建。 这是我们实现钩子的方式: 它在Ubuntu服务器上。 问题答案: 好的,我找到了想要的东西(我是赏金;我的案件是Mercurial,有特定分支)。 在主/原始存储

  • 问题内容: 这一定是一个简单的菜鸟错误,但是 刚回来 但是医生说该方法存在于AbstractProject上,我该怎么办? 问题答案: 你忘了之后。这是一种方法,而不是一种属性;-)

  • 问题内容: 我的项目结构如下: 是内的依赖项。 我是否应该在Jenkins中创建单独的作业以分别构建每个模块? 我为此创建了工作,但在下面得到以下错误(已将目标和操作设置为“全新安装”: [INFO]扫描项目… [INFO] [INFO] ----------------------------------- ------------------------------------- [INFO]

  • 问题内容: 我正在尝试设置一个参数化的版本。构建参数之一是分支名称,我希望TFS插件从那里获取项目。 是否可以将构建参数传递给TFS SCM插件的“项目路径”变量。(如果是,如何?我已经尝试了几种方法,但是似乎没有用) 此变量: TFS项目路径 问题答案: 我认为无法在Jenkins中将变量用于Project路径。项目路径需要在服务器上注册的项目名称。没有定义变量的地方。 项目路径的描述为: Te

  • 开始 建构流程是整个项目最核心的地方之一,通过我们所熟知的 webpack,完成了 template 转换为 wxml 和 样式转换优化以及其他的若干代码的拼接压缩混淆等操作,最终使之可以运行在微信小程序的环境中。 如果你不了解什么是 webpack, 可以查看 webpack文档 。 用一个图来描述: app.vue & main.js ┌---------┐