【问题标题】:Apache Ivy & Settings File阿帕奇常春藤和设置文件
【发布时间】:2011-11-13 05:50:53
【问题描述】:

我正在为一个新的 Java 项目编写我的第一个 Ivy 配置,并尝试将我的 ivy-settings.xml 文件与我的 buildscript 挂钩。

我已按照所有教程进行操作,并已将 xmlns:ivy="antlib:org.apache.ivy.ant" 命名空间正确添加到我的 build.xml 文件中。到目前为止,我已经尝试运行我的 resolve 和 cleancache 目标,它们分别运行 ivy:resolve 和 ivy:cleancache,并且似乎一切正常(Ant 可以找到 Ivy)。

但是...当我运行 ivy:resolve 时,它​​默认会直接转到公共 repo。由于我的解析器是为了查看我的 SVN 根目录而编写的,因此我必须得出结论,Ivy 看不到我的 ivy-settings.xml 文件,并且默认情况下会访问公共存储库。

我特意将我的 ivy-settings.xml 文件作为一个单独的项目保存在源代码管理中,因为它会被我的所有项目使用。

所以我的问题:

我如何指示 Ant buildscipt 在我的文件系统中的其他位置查找 ivy-settings.xml 的签出版本,而不仅仅是在本地与 build.xml 位于同一目录中?强>

【问题讨论】:

    标签: apache ant ivy


    【解决方案1】:

    将设置文件名改为:

    ivysettings.xml

    如果您想更改此默认名称和位置(与构建文件相同的目录),请使用“设置”任务

    更新

    这是我在调用 cleancache 任务的 ivy resolve 之前确保加载设置文件的方式。创建一个名为 init 的目标,该目标被声明为依赖项

    <target name="init">
        <ivy:settings file="../../ivysettings.xml"/>
    </target>
    
    <target name="resolve" depends="init">
        <ivy:resolve/>
    </target>
    
    <target name="clean" description="Cleanup build directory">
        <delete dir="${build.dir}"/>
    </target>
    
    <target name="clean-all" depends="init,clean" description="Clean and purge caches">
        <!-- Purge the ivy cache -->
        <ivy:cleancache/>
    </target>
    

    【讨论】:

    • 谢谢马克,但你误解了我的问题。如果我有一个设置文件存储在我的项目以外的其他目录中,是否将 buildscript 链接到我的 settis 文件,就像 一样简单?因为如果是,那么常春藤仍然没有找到它。示例:
    • 如果没有代码示例,我无法发表评论。确定在解决之前调用设置任务吗? (或清理缓存)
    • 我已更新我的答案以包含设置任务的示例
    猜你喜欢
    • 2011-10-28
    • 2012-01-10
    • 2017-02-23
    • 2014-05-26
    • 2010-12-30
    • 2011-02-24
    • 2013-02-03
    • 1970-01-01
    相关资源
    最近更新 更多