<ant antfile="build.xml" target="test" dir="projects/project1"/>
用以上命令,会执行"projects/project1"下面的ant脚本,但是运行目录会是当然所在的目录".",也就是说ant运行中如果用到相对文件路径会是相对于当前路径而不是build.xml所在路径。
如果需要相对于build.xml所在路径,我们可以先把当然路径切换到"projects/project1"下再执行ant.这样我们构造一个.bat文件
build-project1.bat
cd projects/project1 call ant test cd ../..
然后再在ant中调用系统命令来运行这个.bat文件
<!--build.xml--> <project name="build-project1" default="build"> <target name="build"> <exec executable="cmd"> <arg value="/c"/> <arg value="build-project1.bat"/> <arg value="-p"/> </exec> </target> </project>
以下转自
http://xuliangyong.iteye.com/blog/371692
使用ant来做每日构建有写日子了
今天想在每日构建脚本中加入重启tomcat的操作 问题来了
先看脚本
- @echo stop tomcat...
- call "D:\Program Files\apache-tomcat-6.0.18\bin\shutdown.bat"
- ant -f D:\dailybuild\build.xml war
- @echo start tomcat...
- call "D:\Program Files\apache-tomcat-6.0.18\bin\startup.bat"
@echo stop tomcat...
call "D:\Program Files\apache-tomcat-6.0.18\bin\shutdown.bat"
ant -f D:\dailybuild\build.xml war
@echo start tomcat...
call "D:\Program Files\apache-tomcat-6.0.18\bin\startup.bat"
shutdown.bat是可以执行的
接下来的ant也是可以执行的
但是再下来的startup.bat就不能执行了
就是说调用完ant build.xml文件后没有返回
百思不得其解 放狗搜去
无意中看到这么一句
引用
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
摘自:http://shyboy.bloghome.cn/posts/32153.html
虽然build.xml不是bat文件 但同为外部脚本,用call试试
果然 管用了
- call ant -f D:\dailybuild\build.xml war
call ant -f D:\dailybuild\build.xml war
执行完后成功执行了startup.bat
引用
原来如此 call并不仅仅用来调用bat,而且可以调用所有的其他脚本