如何指定base dir然后我们像ant -f somedir/dir/build.xml一样运行ant

And*_*i N 12 java ant

ant -f somedir/dir/build.xml. 如果我指定的话,如何指定base dir然后我们运行ant像Ant set相对于build.xml一样

<project basedir="." ..>
Run Code Online (Sandbox Code Playgroud)

我想让basedir指向执行Ant的地方.

Dav*_*rth 18

使用-D覆盖basedir属性:

ant -Dbasedir=`pwd` -f path/to/build.xml
Run Code Online (Sandbox Code Playgroud)

使用pwd只是一个Linux的东西,但如果你在另一个平台上,你总是可以把当前目录的绝对路径放在那里.

我认为没有办法在build.xml中执行此操作,缺少使用该ant任务重新执行ant .


vir*_* us 9

您可以尝试使用任务:

假设你有两个不同的文件夹

  1. 您当前正在执行ant命令的文件夹X:/ your/launching /文件夹

  2. 目标bulid.xml所在的文件夹:Y:/any/folder/with/build.xml

您可以执行以下操作:

使用下一个内容在X:/ your/launching /文件夹中创建build.xml:

<target name="mytarget">
    <subant target="debug">
        <fileset dir="Y:/any/folder/with" includes="build.xml"/>
    </subant>
</target>
Run Code Online (Sandbox Code Playgroud)

然后你可以从X:/ your/launching/folder文件夹执行ant mytarget来开始构建你的Y:/any/folder/with/build.xml

更新:

您可以覆盖subant构建的basedir属性,如下所示:

    <subant target="debug">
        <property name="basedir" value="./any/dir/with/project"/>
        <fileset dir="Y:/any/folder/with" includes="build.xml"/>
    </subant>
Run Code Online (Sandbox Code Playgroud)