kra*_*ade 8 ant dependencies jar project ivy
我有几个jar文件,(其中一些依赖于彼此),我正在尝试让ivy为我的项目管理它们.
我不想创建一个"本地"(基于用户目录)存储库,因为我希望其他用户能够检出我的svn项目并在没有本地/共享存储库设置的情况下运行它.由于各种原因,我无法将这些文件添加到我们正在使用的实际存储库中.
该项目依赖于这些文件,我在SVN中使用它们.在过去,我有我正常的常春藤依赖xml文件.这些文件使用设置xml文件指向远程存储库.过去,在最后一刻,我让ant使用构建任务将这些文件从lib文件夹复制到内置文件夹中.这感觉就像一个破坏的滥用,忽略了常春藤文件系统解析器的功能.
(3个可构建项目的ivy.xml和build.xml在另一个基本目录中使用相同的ivysettings.xml.)
我觉得我有90%的方式,我应该在ivysettings.xml中指向我的文件系统解析器,以便在解析器链中首先解析我在projectdir/lib中检查jar文件?
你看过 ivy 任务构建列表吗?
您可以使用它来控制 3 个模块的构建顺序。当每个模块构建完成后,它可以发布到本地存储库,确保 jar 及时出现在链中的下一个模块中。
build.xml
ivysettings.xml
--> module1 --> build.xml
ivy.xml
--> module2 --> build.xml
ivy.xml
--> module3 --> build.xml
ivy.xml
Run Code Online (Sandbox Code Playgroud)
您的设置文件可以由所有项目共享。它声明您构建的模块在本地可用,其他所有内容都来自项目的所有用户可用的默认存储库(在本例中为 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>
Run Code Online (Sandbox Code Playgroud)
最后,当您在外部发布时,您可以使用 ivy安装任务将已在本地发布的模块复制到最终存储库位置
| 归档时间: |
|
| 查看次数: |
8867 次 |
| 最近记录: |