要到另一个目录下运行ant, .bat文件中调用ant

<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的操作 问题来了
先看脚本

Java代码
  1. @echo  stop tomcat...  
  2. call "D:\Program Files\apache-tomcat-6.0.18\bin\shutdown.bat"   
  3.   
  4. ant -f D:\dailybuild\build.xml war  
  5.   
  6. @echo  start tomcat...  
  7. 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试试
果然 管用了

Java代码
  1. call ant -f D:\dailybuild\build.xml war  
call ant -f D:\dailybuild\build.xml war


执行完后成功执行了startup.bat

引用
原来如此 call并不仅仅用来调用bat,而且可以调用所有的其他脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值