Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式从ant任务检索返回代码_Java_Ant - Fatal编程技术网

Java 以编程方式从ant任务检索返回代码

Java 以编程方式从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">

以编程方式检索返回代码时遇到问题…以下文件。(确实删掉了一些公司特有的东西)。我得到了两个文件,一个是包含java任务的通用文件,另一个是定义sime属性和ant任务的特定文件

如何在执行java测试时获得build.rc?文件末尾的echo消息传递实际返回代码,但p.getProperty(“build.rc”)返回null

specific.build.xml

<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));