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

Ivy,Ant,Jenkins-对一个好主意 在Jenkins建筑上?

贺靖
2023-03-14
问题内容

我们将把Ivy与Ant一起使用,并且让Jenkins进行构建。我本来以为让詹金斯(Jenkins)<ivy:cleancache/>在运行构建之前先做一个好主意。(这将是强制性的“清洁”目标的一部分)。

但是,我现在看到的<ivy:cleancache>不仅是从中清除内容<ivy:cachepath>,而且实际上是删除了整个$HOME/.ivy/cache目录。

我担心的是,如果Jenkins <ivy:cleancache>在所有构建开始之前都进行了构建,它将干扰Jenkins可能正在执行的其他构建。

这是<ivy:cleancache>一个好主意吗,特别是如果一个用户可能同时进行多个构建时?

实际上,当您<ivy:cachepath pathid="compile.path"/>在多个项目中执行操作时会发生什么?这还会影响詹金斯吗?如果同时构建多个版本,Jenkins会感到困惑compile.cachepath吗?


问题答案:

在我看来,在每个版本中运行ivy cleancache任务都是过大的,并且消除了使用ivy,智能下载第三方依赖项的主要好处之一。

话虽如此,如以下相关的Maven问题所述,所有缓存都可能变脏,应定期清除:

当您从远程存储库检索所有依赖项时,本地存储库仅不过是一个缓存。

像所有缓存一样,Maven本地存储库有时可能会变得“脏”。在公认的偏执狂和过度杀伤行为中,我安排了定期的cron工作来清除构建机器上的本地存储库。这将强制与我的Nexus Maven存储库重新同步

几个建议:

我的第一个建议是创建一个定期的Jenkins作业,该作业在您的构建中调用以下“全部清除”目标:

<target name="clean-all" depends="clean">
   <ivy:cleancache/>
</target>

这样可以确保Jenkins决定清除缓存的时间,并且可以将其安排为在正常构建时间之外进行(例如,每月的1号凌晨2点)

使用多个缓存隔离每个项目

我的第二条建议增加了项目构建之间的隔离度。使用caches指令将每个项目配置为拥有自己的专用缓存。在您的常春藤设置文件中。



 类似资料:
  • 问题内容: 我已经在React文档中读到,“如果”类型语句不能在JSX代码中使用,由于JSX呈现到javascript中的方式,它无法正常工作。 但是,有什么理由为什么实现“ if”组件不是一个好主意?从我的初始测试来看,它似乎工作正常,并且使我想知道为什么不经常这样做? 我的部分意图是让反应开发尽可能地基于标记,并且使用尽可能少的javascript。在我看来,这种方法更像是一种“数据驱动”方法

  • 问题内容: 我在Linux上的家中的特定用户下拥有工作的/.jenkins文件夹。我想与其他用户一起启动Jenkins,但要重新使用其他用户的.jenkins文件夹。我怎样才能做到这一点?詹金斯提供了一些说明,但我不明白:) 问题答案: 我认为这可以帮助您。 设置一个指向该文件夹的环境变量,然后运行Jenkins命令。 外壳应该像 批次应该像 该应该像 这会将您的主目录设置为

  • 问题内容: 我想创建一个Jenkins作业来启动其他Jenkins作业。那将非常容易,因为Jenkins模板项目插件允许我们创建一个类型为“使用来自另一个项目的构建器”的构建步骤。但是,使我的情况更难的是,我必须在其他计算机上开始Jenkins的工作。有什么标准方法可以做到吗? 问题答案: 万一您只想触发Job的新版本,您有多种方法可以完成它 您可以使用远程访问API并触发请求以从源Job构建目标

  • 问题内容: 我正在尝试从ANT任务编写脚本。这个脚本做了一些svn-stuff,然后应该设置outputproperty : 我想使用此属性在jenkins的构建后步骤中通过电子邮件将其发送给某些收件人,但是我似乎无法在Jenkins中使用它。我从中收到的邮件仅作为内容。 不知道这是否有帮助,但是在我的ANT脚本的顶部,我用 我做过的另一种方法是通过将我的属性声明为并分别设置exec目标的输出属性

  • 问题内容: 我最近发现了如何通过此方法在python中动态创建变量: 从而创建变量。 我的问题是,这是个好主意吗?还是应该总是提前声明变量? 问题答案: 我认为最好使用字典: 我认为这更像Python。

  • 我有使用selenium测试web服务器junit测试。当我使用ant从命令行运行测试时,一切工作正常,浏览器打开,测试按计划进行。浏览器打开,我可以看到测试正在运行。最近,我尝试添加自动测试,作为运行在Jenkins上的Ci循环的一部分。我以ant build命令运行它。我可以看到ant正在正常执行(测试类已经构建,我可以看到从测试到控制台的输出),但浏览器窗口从未打开,因此测试失败。这是我的a