Ant ';make-n';蚂蚁的等价物
根据make的手册页,-n选项执行以下工作:Ant ';make-n';蚂蚁的等价物,ant,makefile,Ant,Makefile,根据make的手册页,-n选项执行以下工作: Print the commands that would be executed, but do not execute them. 打印要执行的命令,但不要执行它们。 我正在寻找一个在ApacheAnt中起相同作用的选项。Ant没有make或maven所具有的干运行选项。但是您可以在eclipse下以调试模式一步一步地运行ant文件。不,我相信。在Ant中,默认情况下没有这种方法。你可以在谷歌上找到许多非歧视性的尝试。但我搜索过一次,但没有成功。
Print the commands that would be executed, but do not execute them. 打印要执行的命令,但不要执行它们。
我正在寻找一个在ApacheAnt中起相同作用的选项。Ant没有make或maven所具有的干运行选项。但是您可以在eclipse下以调试模式一步一步地运行ant文件。不,我相信。在Ant中,默认情况下没有这种方法。你可以在谷歌上找到许多非歧视性的尝试。但我搜索过一次,但没有成功。这将是一个有用的功能,但不容易实现 Make和ANT在架构上完全不同。ANT不运行外部操作系统命令,相反,大多数ANT“任务”在同一个Java线程中执行 可以模拟“干运行”,如下所示:
<project name="Dry run" default="step3">
<target name="step1" unless="dry.run">
<echo>1) hello world</echo>
</target>
<target name="step2" depends="step1" unless="dry.run">
<echo>2) hello world</echo>
</target>
<target name="step3" depends="step2" unless="dry.run">
<echo>3) hello world</echo>
</target>
</project>
在构建脚本中创建一个特殊目标,该目标只执行一些回显操作,即检查属性、路径是否为。。已正确解析。
请参阅,以了解已回答的类似问题。
要查看ant安装的详细信息,请使用
ant-diagnostics
可怕,但它就在这里。我们可以在运行时使用
标记*中的一些代码攻击目标。下面的do dry run
中的代码在每个目标上设置一个除非
属性,然后设置该属性,使它们都不执行。Ant仍然打印出由于属性而未执行的目标的名称,除非属性
*(使用Oracle、OpenJDK和IBM版本的Java,Ant1.8+似乎支持JavaScript脚本标记。)
但当我进行干跑时,它不会:
$ ant dry-run
Buildfile: build.xml
dry-run:
targetA:
targetB:
build:
BUILD SUCCESSFUL
Total time: 0 seconds
非常合理的要求。令人惊讶的是,蚂蚁缺乏这种基本能力。
<?xml version="1.0" encoding="UTF-8"?>
<project default="build">
<target name="targetA"/>
<target name="targetB" depends="targetA">
<echo message="DON'T RUN ME"/>
</target>
<target name="targetC" depends="targetB"/>
<target name="build" depends="targetB"/>
<target name="dry-run">
<do-dry-run target="build"/>
</target>
<macrodef name="do-dry-run">
<attribute name="target"/>
<sequential>
<script language="javascript"><![CDATA[
var targs = project.getTargets().elements();
while( targs.hasMoreElements() ) {
var targ = targs.nextElement();
targ.setUnless( "DRY.RUN" );
}
project.setProperty( "DRY.RUN", "1" );
project.executeTarget( "@{target}" );
]]></script>
</sequential>
</macrodef>
</project>
$ ant
Buildfile: build.xml
targetA:
targetB:
[echo] DON'T RUN ME
build:
BUILD SUCCESSFUL
Total time: 0 seconds
$ ant dry-run
Buildfile: build.xml
dry-run:
targetA:
targetB:
build:
BUILD SUCCESSFUL
Total time: 0 seconds