【问题标题】:add local jars to ivy build script将本地 jars 添加到 ivy 构建脚本
【发布时间】:2013-04-30 13:32:10
【问题描述】:

我正在开发一个使用 ivy 来管理依赖项的现有应用程序,源代码带有 ivy.xmlivysettings.xml 文件。我正在尝试将我自己的 jar 添加到构建中。最简单的方法是什么?

我尝试向 ivy.xml 添加依赖项,但我不确定如何配置存储库目录。也许有简单的方法可以做到这一点?任何快速而肮脏的方式都可以。

【问题讨论】:

    标签: ant ivy


    【解决方案1】:

    假设您可以修改刚刚继承的ivysettings.xmlfilesystem resolverchain resolver 应该可以帮助您。

    【讨论】:

      【解决方案2】:

      您可以在本地常春藤缓存或共享常春藤缓存下将您的 jar 本地存储在您的机器上。我相信它是$HOME/.ivy2/local$HOME/.ivy2/shared,其格式与$HOME/.ivy2/cache 目录相同。如果您使用 <ivy:publish/> Ant 任务将本地 jar 推送到本地存储库,那么您的所有项目都可以访问它们。

      但是,我建议硬着头皮做事...技术术语是什么?哦,是的... 正确的方法

      继续设置项目范围的 Ivy/Maven 存储库,您可以在其中获取本地 jar,就像获取第三方 jar 一样。这样,您的本地 jar 和您正在使用的第三方 jar 之间没有区别。没有人需要考虑特定 Jar 的位置或调整他们的 Ivy 配置来获得一个或另一个 jar。

      下载NexusArtifactory。您可以设置这些存储库,以便所有第三方 jar 和您的本地 jar 都可用,就好像它们都存储在同一服务器中一样。您甚至可以添加其他不在中心位置的 jar 存储库。

      我推荐 Loughran 的书 Ant in Action。它有一个关于使用 Ivy 的优秀章节。您还可以查看我的ivy.dir,了解我是如何配置 Ivy 的,因此我们所有的项目都可以轻松访问它。

      【讨论】:

      • 必须以“正确的方式”做事,这使得 Ivy 很难工作,没有人愿意花费 2 周的时间来重新配置项目中的每个模块如果你从一开始就一直在使用 Ivy。有时人们只是想要一种方法现在将某些东西放入构建系统,以便将设置它的问题分解为多个更小的问题。
      • 我仍在将项目转换为 Ivy。我们有 15 个不同的基础 jar 构建,以及 40 多个不同的项目。更糟糕的是,有人制作了自己的解决方案,将所有构建文件分解为八到九个单独的文件,以及一个用于查找本地构建的 jar 的复杂系统。如果您必须使用 Ivy 进行构建,则设置 Artifactory 只需不到一天的时间。我知道,我花了不到一天的时间。我下载了一组初始的基本罐子,这样我就可以开始构建工作了。不设置 Artifactory 不会加快实施速度。
      • 我做的一件事是设置一个通用的Ivy project。我可以将它设置为 Subversion 外部,只需将此 ivy.dir 添加到您的项目中,Ivy 就会与该项目一起配置。它使采用变得更加容易。
      • 我花了大约一整天的时间来重新配置我们系统中的单个模块,以获得编译所需的完整依赖项列表。我更愿意说“只使用这个 jar 来处理这个依赖项,我不在乎它是什么版本”,因为它会让事情 now 正常工作并避免 2 周的迁移到让整个构建工作。从本质上讲,它会将 2 周的时间分散到项目的整个生命周期中,因为人们觉得需要更新 jar。
      • @Trejkaz 我的问题实际上是缩减依赖项列表。开发人员检查了数百个他们“依赖”的罐子。当然,其中一些是依赖项的依赖项。我扔进了整个该死的列表,并在第一次构建它(只拉了另外一百个左右的依赖项。有帮助的是Tattletale,它遍历了整个项目并找到了真正的依赖项列表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多