Java 以编程方式从ant任务检索返回代码
以编程方式检索返回代码时遇到问题…以下文件。(确实删掉了一些公司特有的东西)。我得到了两个文件,一个是包含java任务的通用文件,另一个是定义sime属性和ant任务的特定文件 如何在执行java测试时获得build.rc?文件末尾的echo消息传递实际返回代码,但p.getProperty(“build.rc”)返回null specific.build.xmlJava 以编程方式从ant任务检索返回代码,java,ant,Java,Ant,以编程方式检索返回代码时遇到问题…以下文件。(确实删掉了一些公司特有的东西)。我得到了两个文件,一个是包含java任务的通用文件,另一个是定义sime属性和ant任务的特定文件 如何在执行java测试时获得build.rc?文件末尾的echo消息传递实际返回代码,但p.getProperty(“build.rc”)返回null specific.build.xml <project basedir="../../../.." name="run-joblauncher">
<project basedir="../../../.." name="run-joblauncher">
<property name="prop1" value="valProp1" />
<ant antfile="./dev/script/general.xml" dir="${basedir}" target="RUN-MYCLASS" inheritAll="true"/>
</project>
编辑:
<project basedir="../../../.." name="run-joblauncher">
<property name="prop1" value="valProp1" />
<ant antfile="./dev/script/general.xml" dir="${basedir}" target="RUN-MYCLASS" inheritAll="true"/>
</project>
如何为已经定义的属性赋值?在java目标外部定义了一个var returnCode,并尝试在目标内部像
那样赋值。不跑
EDIT2:
添加了一个自定义BuildListener并在那里获取build.rc
@Override
public void targetFinished(BuildEvent event) {
if (event.getTarget().getName().trim().equalsIgnoreCase("RUN-MYCLASS")) {
String buildRc = event.getTarget().getProject().getProperty("build.rc");
tester.taskFinished(buildRc, jobname);
}
tester是我的JUnit测试,将在构造函数中设置
属性范围存在于ApacheAnt的各种“块”级别。这些包括目标以及并行和顺序任务容器(包括Macrodef主体)
非常确定build.rc
是本地的,并且只在目标范围内有效。因此,我们无法在目标执行后访问它
尝试定义一个全局属性(使用
元素),并将java任务的结果代码分配给该属性 添加了一个自定义BuildListener并在那里获取build.rc
@Override
public void targetFinished(BuildEvent event) {
if (event.getTarget().getName().trim().equalsIgnoreCase("RUN-MYCLASS")) {
String buildRc = event.getTarget().getProject().getProperty("build.rc");
tester.setReturnCode(buildRc);
}
然后像这样测试
assertEquals(0, Integer.parseInt(this.returnCode));
ain'get macrodef NOTE unset running:(您能发布相应文件的任何完整代码吗?(general.xml或specific.xml.)
assertEquals(0, Integer.parseInt(this.returnCode));