gpt4 book ai didi

java - 如何使用ivy在本地解析

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:45 26 4
gpt4 key购买 nike

我已经使用 Ivy 和 URL 解析器设置了我们的 Eclipse 项目,该解析器在办公室的 Web 服务器上查找工件和 ivy 文件。一切都很好。

我有几个项目是其他项目的依赖项,我想调整 Ivy 配置,以便这些依赖项可以“本地发布”,以便依赖它们的下游项目可以在本地解决它们。这样做将允许开发人员在一个项目中进行更改,并看到这些更改在依赖它的另一个项目中波及;所有这些都无需发布到我们的官方(网络服务器)存储库。

首先,我将一个本地发布任务添加到一个项目(我们称它为DepProj),它是下游项目的依赖项:

<target name="publish-locally" depends="clean,dist">
<ivy:publish resolver="local" overwrite="true" pubrevision="${ivy.new.revision}">
<artifacts pattern="${distDir}/[artifact].[ext]" />
</ivy:publish>
</target>

然后我修改了 DepProj 的一个下游项目 DownstreamProj 的 ivy.xml 文件:

<dependency org="ourOrg" name="DepProj" rev="latest.integration" conf="*->*"/>

我现在对将两者联系起来感到窒息。我需要调整我们的 ivy.settings 文件以使用文件系统解析器。当DepProj发布到本地时,可以看到它先运行clean,然后运行distdist 目标在 DepProj/dist/DepProj.jar 下创建一个 JAR。

我想我需要将文件系统解析器(以某种方式)指向这个 dist 目录?但话又说回来,DepProj 并不是我想在本地发布的唯一项目。

我已经掌握了大部分拼图,我只是无法连接一些点。

某种 SOer 可以将我推向正确的方向吗?一个有用的代码示例也总是非常感谢!谢谢!

最佳答案

你肯定需要定义一个 file system resolver并创建您自己的 ivysettings.xml。

你必须给它一个可以发布的特殊目录。这应该在您的项目之外的某个地方。

    <filesystem name="local" checkmodified="true">
<ivy pattern="${basedir}/../repo/[module](-[branch])/[revision]/[artifact](-[branch])-[revision].[ext]" />
<artifact pattern="${basedir}/../[module]/[revision]/[artifact](-[branch])-[revision].[ext]" />
</filesystem>

这将表现得像一个完全正常的存储库。解决后,工件将被复制到您的缓存,并从那里复制到您的检索位置。

发布时工件将被复制到那里。

你可以设置ivysettings.xml的路径:

<property name="ivy.settings.file" value="${path_to_file}/ivysettings.xml"/>

这将通过调用自动读取:

<ivy:settings />

激活设置。

您还可以为特殊模块创建一个链,它首先在文件系统中查找,然后在存储库中查找:

<resolvers>
<url name="remote"/>
<filesystem name="local" checkmodified="true" />

<chain name="ourOrg" dual="true" latest="time">
<resolver ref="local"/>
<resolver ref="remote"/>
</chain>
</resolvers>

<modules>
<!-- resolver für readybank module-->
<module organisation="ourOrg" resolver="ourOrg"/>
</modules>

IvyDe for eclipse 有一个工作区解析器,它适用于任何在 eclipse 中打开的项目。

关于java - 如何使用ivy在本地解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com