不知道是不是我都说的方式不对,还是现在很少用这个ant来编译python。不过最近正好用到了,遇到了一点小问题,现在写一下。
首先,我要用ant来执行python,获取到处理后有无异常。
问题来了,main函数并不能返回值。正常执行的话,ant可以build success,如果错了的时候,我调用的是sys模块的exit方法,但是在单位的时候执行的结果,和自己在电脑上敲的不太一样
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="py_ant" default="main" basedir=".">
<description>python compile!</description>
<target name="main">
<echo message="Java Version: ${ant.java.version}"/>
<exec executable="python" failonerror="true">
<arg value="pyant.py" />
</exec>
</target>
</project>
pyant.py
#!/usr/bin/env python
#coding:utf-8
import sys
if __name__=='__main__':
try :
sys.exit(1)
except SystemExit,value:
print value
现在得到的结果是:
sys.exit(0),ant可以成功编译
sys.exit(1),ant编译失败
try,except包装一下,如上,还是可以编译成功的
所以吧,按常理来说只要sys.exit(0)就可以成功编译,要是遇到异常不再进行下面的编译脚本,就执行sys.exit(-1)