Ivy、Ant、Jenkins - 在 Jenkins 构建上使用 是个好主意吗?

2024-03-19

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

然而,我现在看到<ivy:cleancache>不只是清理其中的东西<ivy:cachepath>,但确实删除了整个$HOME/.ivy/cache目录。

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

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

事实上,当你执行以下操作时会发生什么<ivy:cachepath pathid="compile.path"/>在多个项目中?这是否也会影响像 Jenkins 这样的东西?如果多个构建正在构建,Jenkins 会感到困惑吗?compile.cachepath同时?


在我看来,在每个构建中运行 ivy cleancache 任务是多余的,并且消除了使用 ivy 的主要好处之一,即智能下载第 3 方依赖项。

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

什么时候删除本地 Maven 存储库是安全的? https://stackoverflow.com/questions/10049948/when-is-it-safe-to-delete-the-local-maven-repository/10050239#10050239

几个建议:

使用专用的 Jenkins 作业来清除 ivy 缓存

我的第一个建议是创建一个定期的 Jenkins 作业,在构建中调用以下 clean-all 目标:

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

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

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

我的第二个建议增加了项目构建之间的隔离。使用以下命令将每个项目配置为拥有自己的私有缓存caches http://ant.apache.org/ivy/history/latest-milestone/settings/caches.html指示。在你的常春藤设置文件中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ivy、Ant、Jenkins - 在 Jenkins 构建上使用 是个好主意吗? 的相关文章

随机推荐

  • java arraylist EnsureCapacity 不起作用

    要么我做错了 要么我不明白这个方法是如何工作的 ArrayList
  • 强制 pandas xaxis 日期时间索引使用特定格式

    我的 pandas 数据框如下所示 data1 data2 data3 DateTime 2016 04 18 16 16 53 66 1 94 8654 2016 04 18 16 17 03 67 1 94 8601 2016 04 1
  • 顺序一致但非静态一致的执行示例

    根据 Maurice Herlihy 和 Nir Shavit 的 多处理器编程的艺术 第 3 章 在并发程序的正确性方面 顺序一致性是比静态一致性更强的条件 作者还在 3 4 1 中提到 存在顺序一致的执行 但并非静态一致 我不明白怎么办
  • 使用 Jcraft 通过 SFTP 传输文件

    项目清单 我可以编写一个java程序通过SFTP传输文件 但是 这将包含一个带有可执行命令的脚本 这可以通过 Jcraft 实现吗 比方说 示例脚本文件是这样的 cd pub ascii get filename txt put other
  • 打字稿提升

    我试图理解打字稿中的提升 提升是否在 Typescript 中进行 如果是 与 Javascript 中的提升方式相比有什么不同吗 例如 即使我在使用它的函数之后声明了接口 代码也可以很好地转换 可以安全地假设它的发生是由于作为转译的一部分
  • 使用具有多行的 imagettftext 函数?

    我正在使用 php 创建透明文本 gt png 图像 到目前为止一切顺利 唯一的问题是我希望能够由于固定宽度而使文本自动换行 或者能够在文本中插入断线 有没有人有任何经验这样做 这是我的代码
  • 动态更改持久性单元 - JPA

    persistence xml 中的持久性单元是在构建应用程序期间创建的 由于我想在运行时更改数据库url 有什么方法可以在运行时修改持久化单元吗 我应该在分发后使用除预绑定数据库之外的不同数据库 我正在使用 EclipseLink JPA
  • Django-storage - 如何在上传之前检查文件大小?

    存储和 Django 1 6 我想限制保存的文件大小s3 执行此操作的适当方法是什么 我应该在表单中进行自定义字段验证 还是在使用 Django Storage 时有更好的方法来执行此操作 验证需要将文件上传到服务器 这建议的方式 http
  • 会话关闭后如何强制休眠释放内存?

    我们最近才开始使用 Hibernate 并且仍在适应它的工作方式 我们看到的一件事是 即使在所有会话关闭并且引用超出范围之后 hibernate 似乎仍然在其缓存中维护以前使用的数据库值 我们的代码可以多次读取一组表 因为所有的内存都被非常
  • 从通过 cron 作业运行的 bash 脚本访问 SSH 密钥

    我将这个脚本放在一起 每天更新一个分叉的 Github 存储库文件夹 如果我从提示符中调用它 它运行得很好 但我无法弄清楚如何让它在作为 cron 作业运行时可靠地利用我的 id rsa 这eval ssh agent 正是这样做的尝试 但
  • XCode中文档下的“注释”的用途是什么

    字体选择框下方有一个自由文本字段Xcode 5 似乎属于Notes类别 那么 注释和空盒子的目的是什么under No Font如下图所示 我尝试为我的一个组件 即我的按钮 使用注释 并为其添加一些注释 如图 1 所示 这是 XIB 中按钮
  • 单个请求到多个异步响应

    所以 问题来了 iPhone 很棒 但对于有服务器端要求的应用程序来说 带宽和延迟是严重的问题 我解决这个问题的最初计划是对数据位发出多个请求 双关语无意 并以此来处理大量传入 传出数据的问题 由于很多原因 这是一个坏主意 对我来说最明显的
  • Selenium:如何拦截请求

    有人知道如何在 Selenium WebDriver 中拦截 获取请求 url XHR 和响应吗 是否可以 Webdriver 不直接支持它 但您可以通过代理重定向来捕获所有流量 在爪哇 Proxy proxy new Proxy This
  • StartsWith() 不会转换为 LINQ 中的 Like('abc%')

    我有以下 ASP NET Core LINQ 代码 List
  • 如何存储和更新具有不同数据类型属性的 localStorage 键对象?

    这是我第一次使用localStorage我想存储一个localStoragekey 是一个具有不同数据类型属性的对象 例如 key localstor 它是一个包含两个属性的对象 localstor userMsg String userI
  • 将 Excel 解析为 JSON

    我想知道是否可以将 excel 解析为 json 如果可能的话 Excel 的结构使其成为可能 有应用程序什么的吗 我有这个 JSON 结构http pastie org 2760828 http pastie org 2760828我必须
  • Swift 中的@dynamicCallable 是什么?

    来自苹果的文档 The dynamicCallable属性让你可以调用named types就像你打电话一样 使用简单语法糖的函数 主要用例是动态语言互操作性 你为什么要使用 dynamicCallable而不是直接方法 dynamicCa
  • Angular 7 - 向动态创建的组件添加拖放行为

    这是我在 SO 上提出的上一个问题的延续 在声明组件选择器时添加指令 Angular 7 https stackoverflow com questions 56072516 add directives to component sele
  • VBA-Loop 和一些工作表

    我是一个初学者 我想在我的 Excel 文件的所有工作表中进行循环 除了第一个工作表 然而 下面的代码仅适用于第二个 您能解释一下这段代码有什么问题吗 非常感谢 Sub MobileTCalculation MobileTCalculati
  • Ivy、Ant、Jenkins - 在 Jenkins 构建上使用 是个好主意吗?

    我们将使用 Ivy 和 Ant 并且让 Jenkins 来完成我们的构建 我原本以为让詹金斯做一个