根据make的手册页,-n选项执行以下工作:
Print the commands that would be executed, but do not execute them.
我正在寻找一个在Apache Ant中行为相同的选项。
答案 0 :(得分:2)
可怕,但现在是。我们可以使用<script>
标记内的一些代码在运行时破解目标。下面do-dry-run
中的代码会在每个目标上设置unless
属性,然后设置该属性,使其不会执行任何属性。 Ant仍会打印出由于unless
属性而未执行的目标的名称。
*(使用Oracle,OpenJDK和IBM版本的Java,Ant 1.8+似乎支持JavaScript脚本标记。)
<?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>
当我正常运行时,echo
会发生:
$ 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
答案 1 :(得分:1)
Ant没有像make或maven那样的干运行选项。但你可以在eclipse下的调试模式下逐步运行ant文件。
答案 2 :(得分:0)
不,我相信。 Ant中默认没有这种方法。你会在谷歌上发现许多令人不满意的尝试。但是我曾经搜过一次并且没有成功。
答案 3 :(得分:0)
这将是一个有用的功能,但不容易实现。
Make和ANT在架构上完全不同。 ANT不运行外部OS命令,相反,大多数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 -Ddry.run=1
Buildfile: build.xml
step1:
step2:
step3:
BUILD SUCCESSFUL
Total time: 0 seconds
答案 4 :(得分:0)
在您的buildscript中创建一个特殊目标,仅执行一些回显,即检查属性,路径..是否正确解析。
如果回答了类似问题,请参阅https://stackoverflow.com/a/6724412/130683
要查看ant安装的详细信息,请使用ant -diagnostics