根据this页面,我需要在我的Ant构建中声明一个<ivy:settings>任务,以帮助Ant定位ivysettings.xml文件的位置。在此设置文件中,可以找到我所有存储库的定义以及其他信息。

令我感到困惑的是:根据该页面(上面提供的链接),<ivy:settings>任务可能具有以下属性:

  • id
  • file
  • url
  • host
  • realm
  • username
  • passwd
  • url的描述是:

    要使用的设置文件的URL

    这意味着ivysettings.xml文件实际上可以存储在其他计算机上,甚至甚至可以存储在存储库本身中。

    但是,最后一个属性(hostrealmusernamepasswd)的描述多种多样:

    http验证(主机|领域|用户名|密码)

    对我来说,这些描述与url的描述相结合,表明hostrealmusernamepasswd属性是用于查找和检索ivysettings.xml文件的连接凭据;并且它们不是用于连接到远程存储库的连接凭据。

    Ivy允许您在ivysettings.xml内定义多个存储库,包括多个url-resolvers,这一事实进一步证明了这一点,这些存储库可以是位于具有不同访问凭据的不同服务器上的不同存储库。看到<ivy:settings>任务仅允许您使用这些属性指定一组凭证,这再次暗示这些属性仅用于查找和拉下ivysettings.xml文件,而不用于与1+仓库进行通信。

    所以,我问:
  • 这4个属性是用于连接到url所在的ivysettings.xml,还是用于连接到ivysettings.xml内部定义的远程存储库?
  • 如果以上问题的答案是它们是用于在远程ivysettings.xml上定位url的凭据,那么我应在何处放置凭据以与实际回购协议所在的Web服务器进行通信(例如ivysettings.xml所在的服务器以及ivysettings.xml所在的服务器,我的回购生活可能是两台不同的机器)?
  • 我怀疑您可以将url存储在远程Server A(远程服务器)上吗?如果是这样,我如何告诉Ivy用Loging Credentials A查看ivysettings.xml来找到我的Server B文件,但是要使用Login Credentials Bivysettings.xml上找到我的存储库?

  • 请注意,其中一些人可能还会发现this问题,并认为我的问题在此是重复的。我认为上面提到的问题仅仅是“我将<ivy:settings>文件放在哪里?”的问题。但是,我的问题在本质上有点类似,实际上是在了解ojit_code属性的意图以及它们试图查找的内容:设置文件或设置文件中定义的存储库。提前致谢。

    最佳答案

    从远程服务器检索设置文件时,将使用ivy settings task上的可选属性。在该settings file中,您可以使用credentials标记为远程存储库指定身份验证凭据。

    例子:

  • http authentication between using ant/ivy retrieving dependency from nexus?
  • Where do I put my credentials when using Ivy and a private company repository?
  • Publish SNAPSHOT artifacts to Maven using IVY - what's the magic?
  • 关于java - Apache Ivy设置任务和ivysettings.xml文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12448673/

    10-09 19:29