gpt4 book ai didi

ant - 如何为项目/lib 中的本地 jar 创建 Ivy 依赖项?

转载 作者:行者123 更新时间:2023-12-04 08:46:31 28 4
gpt4 key购买 nike

我有几个 jar 文件(其中一些相互依赖),我正试图让 Ivy 为我的项目管理它们。

我不想创建一个“本地”(基于用户目录的)存储库,因为我希望其他用户能够检查我的 svn 项目并在没有本地/共享存储库设置的情况下运行它。由于各种原因,我无法将这些文件添加到我们正在使用的实际存储库中。

该项目依赖于这些文件,我在 SVN 中使用它们。过去,我有正常的 ivy 依赖 xml 文件。这些文件使用一个设置 xml 文件指向远程存储库。过去,在最后一刻,我让 ant 使用构建任务将这些文件从 lib 文件夹复制到构建文件夹中。这感觉像是一种破坏性的滥用,它忽略了 ivy 文件系统解析器的功能。

(用于 3 个可构建项目的 ivy.xml 和 build.xml 在另一个基本目录中使用相同的 ivysettings.xml。)

我觉得我已经完成了 90% 的工作,我应该在 ivysettings.xml 中将我的文件系统解析器指向什么,以便在解析器链检查 projectdir/lib 中的 jar 文件进行第一次解析?

最佳答案

你看过 Ivy 任务buildlist ?

您可以使用它来控制构建 3 个模块的顺序。随着每个模块的构建,它可以发布到本地存储库,确保 jar 及时出现以供链中的下一个模块使用。

   build.xml
ivysettings.xml
--> module1 --> build.xml
ivy.xml
--> module2 --> build.xml
ivy.xml
--> module3 --> build.xml
ivy.xml

您的设置文件可以由所有项目共享。它声明您构建的模块在本地可用,其他一切都来自项目的所有用户可用的默认存储库(在本例中为 Maven)
<ivysettings>
<settings defaultResolver="maven2"/>
<resolvers>
<ibiblio name="maven2" m2compatible="true"/>

<filesystem name="local">
<ivy pattern="${local.rep.dir}/.."/>
<artifact pattern="${local.rep.dir}/.."/>
</filesystem>
</resolvers>
<modules>
<module organisation="org.me" name="module1" resolver="local"/>
<module organisation="org.me" name="module2" resolver="local"/>
..
</modules>
</ivysettings>

最后,当您在外部发布时,您可以使用 ivy 安装将您已在本地发布的模块复制到最终存储库位置的任务

关于ant - 如何为项目/lib 中的本地 jar 创建 Ivy 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210109/

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