我正在使用Apache Ant进行某些项目,我的项目布局如下:

project/build.xml
project/properties/build.properties
project/tool/antcontrib.jar

在这里,当我运行ant命令时,它可以正常工作,而我的基本目录是basedir =“。”

现在,我希望我的项目布局如下:
project/folder/build.xml
project/properties/build.properties
project/tool/antcontrib.jar

现在,我将基本目录更改为basedir =“..”。我认为这可能有效。
但仍然无法正常工作。
所以我不知道我们要为'../'设置baseir是什么
这是与build.xml文件中定义的taskdef相关的代码块。
<taskdef resource="net/sf/antcontrib/antlib.xml">
        <classpath>
            <pathelement location="${tool.ant.contrib}"/>
        </classpath>
    </taskdef>

注意:我知道build.xml和properties文件应该在同一文件夹中,这是标准做法。但是我不想遵循..任何人都可以在这里帮助我...

最佳答案

为了起作用,属性tool.ant.contrib应该是相对路径,而不是绝对路径。

例如,此构建工作原理是:

<project basedir="..">
    <property name="tool.ant.contrib" location="tool/antcontrib.jar" />
    <taskdef resource="net/sf/antcontrib/antlib.xml">
        <classpath>
            <pathelement location="${tool.ant.contrib}"/>
        </classpath>
    </taskdef>
    <if><isset property="tool.ant.contrib" />
        <then><echo message="OK" /></then>
    </if>
</project>

关于ant - Ant代码中的Basedir问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16579307/

10-13 21:27