1

我正在尝试将 Ivy 配置为与 Artifactory(一个流行的存储库管理器)很好地配合使用,并且需要确认我正在朝着正确的道路前进。

我假设一旦我在我的存储库服务器上正确配置了 Artifactory,我可以将 Ivy 指向下面的某个目录ARTIFACTORY_HOME并传递给它与普通 URL 解析器相同的信息。通过这种方式,Artifactory 获得了信息(要处理的命令、用户名和密码等)并代表实际的存储库接管。(因此,如果凭据错误或用户无权兑现请求,Artifactory 会发回 404/等。)

因此,首先,如果这是错误的,请纠正我!

所以这就是我的想法。在我的项目的 Ant 构建中:

<ivy:settings url="http://my-repo-server.com/ivy/settings/ivy-settings.xml"/>

<target name="ivy-resolve">
    <ivy:configure host="http://my-repo-server.com/ivy"
        realm="ivy"
        username="developer" <!-- "developer" is read-only user configured in Artifactory -->
        passwd="38ur84u83j38y83u" <!-- encrypted password provided by Artifactory -->
        override="false"/>
    <ivy:resolve file="ivy.xml" conf="compile"/>
</target>

然后,在(服务器端)ivy-settings.xml

<resolvers>  
    <url name="repo-server">
        <ivy pattern="http://my-repo-server.com/ivy/???"/>
        <artifact pattern="http://my-repo-server.com/ivy/???"/>
    </url>
</resolvers>

因此,当开发人员的 Ant 构建运行ivy-resolve目标时,Ivy 客户端知道去哪里找到ivy-settings.xml文件,并使用developer我在 Artifactory 中设置的用户和加密密码来配置自己。

唯一的问题是,我不确定在设置文件中为 Ivy & Artifact 模式指定什么?我假设我必须将它们设置为由 Artifactory 控制的某个目录,但我不确定是什么(在 Artifactory 中,我的仓库使用默认的 Ivy 仓库布局)。

另外,我是否像我一样将设置文件放在 repo 服务器上,违反了 Artifactory 的“最佳实践”?我应该把它放在一些 Artifactory 管理的(隐藏)目录中吗?如果是这样,在哪里以及为什么?

最终,代码示例帮助我学习最快和最简单(我是一个图形学习者),因此非常感谢任何朝着正确方向的编程推动!

提前致谢!

4

0 回答 0