从南特打电话给蚂蚁,没有批处理



我们有一个使用 Nant 脚本的自动化构建过程,我们刚刚继承了一个 Java 项目,该项目有一个现有的、有效的 Ant 脚本。 我已经搜索了所有内容,似乎大多数人都使用批处理文件从 Nant 调用 Ant 脚本。 这对我来说似乎有点笨拙。 有没有办法以任务格式直接从 Nant 调用 Ant 脚本?

这个类似的问题用批处理文件解决了它,但我想不用它。

<!-- calling the Ant build Process-->
    <target name="AntBuildProcess" description="Created to call the Ant build during this NAnt build process" >
        <echo message="Starting the Ant Build Process..." />
        <exec program="ant" commandline='-buildfile YourAntBuild.xml' failonerror="true"/>
    </target>

然后在生成过程中,只需在需要生成此目标时调用此目标即可。 <call target="AntBuildProcess" />

Ant 是一个批处理文件。看一看,您会在%ANT_HOME%bin目录中看到一个名为 ant.bat 的文件。

Ant 实际上是一个 Java 程序,因此您可以通过运行类org.apache.tools.ant.launch.Launcher从 java 命令启动它,这基本上是 ant.bat 文件正在执行的操作。

然而,为什么要重新发明轮子呢?该ant.bat以正确的方式运行 Java 命令,为您提供更改其执行方式的选项,并确保所有内容都正确设置。


补遗

我明白了,与 Ant 不同,Nant 总是会调用cmd.exe并使用后缀和%PATHEXEC%来确定某些东西是批处理脚本还是其他类型的脚本。因此,如果要通过 <exec/> 使用 Ant 作为批处理脚本运行 Ant,则可以执行以下操作:

<exec executable="cmd.exe"
    dir="${working.dir}">
    <arg value="/c"/>
    <arg value="ant.bat"/>
</exec>

但是,在 Nant 中,您可以简单地这样做:

<exec program="ant"
    workingdir=${working.dir}"/>

相关内容

  • 没有找到相关文章

最新更新