【问题标题】:How to resolve jar from Artifactory using an ant build with ivy如何使用带有常春藤的蚂蚁构建解决来自 Artifactory 的 jar
【发布时间】:2012-05-04 19:46:29
【问题描述】:

我已经设法将一个使用 Jenkins 的 CI 系统与一个使用 Artifactory 插件将生成的 .jar 上传到 Artifactory 的 Ant 构建系统拼凑在一起。

我现在需要另一个构建,它也是 Ant 来使用 build.xml 中的目标从工件中检索最新的 jar。

我可以找到很多关于如何上传的文章,但很少有关于解决的文章。

我找到的最接近的是http://wiki.jfrog.org/confluence/display/RTF/Working+with+Ivy 但这主要处理重要区域的上传,截图没有数据(或者我的 Artifactory 是,我无法更新它)并处理获取 ivy 或 pom 文件。

我是 Ant/ivy 菜鸟,所以任何如何将目标放在一起的指针将不胜感激。

【问题讨论】:

  • 你已经在使用 ivy 了吗?并且需要知道如何解决最新版本,或者您以前从未使用过 ivy 并且需要将其集成到您的构建中?
  • 抱歉,如果不清楚,恐怕我是个常春藤菜鸟,所以我真的需要两者的建议。
  • 一些教程也在这里:ant.apache.org/ivy/history/latest-milestone/tutorial.html。您的问题非常广泛,您只需要解决这个工件还是要使用 ivy 设置一个完整的依赖管理,它还可以处理所有其他库?
  • 只有一个 jar 工件。谢谢,我之前浏览过这些教程,我会用我学到的东西再次阅读它们,但我认为与 Artifactory 的集成更多是我的症结所在。

标签: ant ivy artifactory


【解决方案1】:

我假设您已经installed ivy。

ivysettings.xml

您需要在名为ivysettings.xml 的文件中为工件定义一个解析器(将其放在根文件夹中,在 build.xml 旁边):

<ivysettings>
        <resolvers>
          <ibiblio name="artifactory" m2compatible="true" root="http://localhost:8080/artifactory/libs-releases"/>
        </resolvers>
</ivysettings>

build.xml

在您的 build.xml 中,我将使用 inline retrieve(这样您就不必编写 ivy.xml):

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="myName">

    ...

    <target name="retrieve" description="retrieve">
      <ivy:settings /> <!-- needed so that ivysettings.xml is used-->
      <ivy:retrieve organisation="foo" module="bar" inline="true" pattern="lib/[artifact].[ext]"/> 
    </target>
</project>

这会将工件下载到 lib 目录中。对于组织和模块,取您在工件中找到的值。

artifactory 的组织和模块

在您提供的链接中的这张图片中,您可以看到如何从工件中获取组织和工件。它将为您提供一个依赖声明框。只需检查 ivy 并从那里获取值。

【讨论】:

  • 感谢 oers。抱歉不清楚,Artifactory 托管在服务器上,而不是本地主机上,我在 ivysettings 中的解析器之前添加了一个凭据,并将根元素更改为 URL,我还需要做什么吗?我在 Artifactory 中查看了模块和组织,但在任何地方都看不到它们的定义,它们存储在哪里?此外,当我尝试将目标作为“蚂蚁检索”执行时,我得到“无法创建任务或键入项目,因为名称未定义”。对不起,我是个菜鸟。
  • @slipp3ry 如果您是只读的,则通常不需要凭据,但这完全取决于您的设置,并且很难远程回答。我更新了问题。这个错误可能是因为你没有在 build.xml 的开头指定 xmlns-part (看我给出的例子)。
  • 大谈 XMLS,我误解了。我没有在我的 Artifactory 中获得 Dependancy Decleration,jar 只是在一个名为 bin 的文件夹中,所以我猜我的组织只是 bin 和模块 myjar.jar?
  • @slipp3ry 它可能是。坦率地说,我不知道 jenkins 插件是如何工作的。你好像用freestyle builds,我不知道。
猜你喜欢
  • 2012-01-13
  • 2011-08-30
  • 2015-05-24
  • 2017-01-03
  • 2010-12-31
  • 1970-01-01
  • 2013-05-31
  • 2015-10-28
相关资源
最近更新 更多