Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 如何在项目/库中为本地JAR创建常春藤依赖项?_Ant_Jar_Project_Dependencies_Ivy - Fatal编程技术网

Ant 如何在项目/库中为本地JAR创建常春藤依赖项?

Ant 如何在项目/库中为本地JAR创建常春藤依赖项?,ant,jar,project,dependencies,ivy,Ant,Jar,Project,Dependencies,Ivy,我有几个jar文件(其中一些相互依赖),我正试图让ivy为我的项目管理它们 我不想创建“本地”(基于用户目录)存储库,因为我希望其他用户能够签出我的svn项目并在没有本地/共享存储库设置的情况下运行它。由于各种原因,我无法将这些文件添加到我们正在使用的实际存储库中 该项目依赖于这些文件,我正在SVN中使用它们。在过去,我有我正常的常春藤依赖xml文件。这些文件使用指向远程存储库的设置xml文件。过去,在最后一分钟,我让ant使用构建任务将这些文件从lib文件夹复制到构建文件夹中。这感觉像是一种被

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

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

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

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


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

你看过常春藤任务了吗

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

   build.xml
   ivysettings.xml
   --> module1 --> build.xml
                   ivy.xml
   --> module2 --> build.xml
                   ivy.xml
   --> module3 --> build.xml
                   ivy.xml
所有项目都可以共享您的设置文件。它表示您构建的模块在本地可用,其他所有内容都来自默认存储库,可供项目的所有用户使用(在本例中为Maven)


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

<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>