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
如何在Java1.7上运行JDiff_Java_Ant_Diff - Fatal编程技术网

如何在Java1.7上运行JDiff

如何在Java1.7上运行JDiff,java,ant,diff,Java,Ant,Diff,我有一个java项目,它使用java 1.7特性,我想用这个项目的两个版本生成一个JDiff文档,我的ant build.xml是这样的: <?xml version="1.0" encoding="UTF-8"?> <project name="jdiff" default="jdiff_report" basedir="."> <target name="jdiff_report" depends=""> <property name="JDI

我有一个java项目,它使用java 1.7特性,我想用这个项目的两个版本生成一个JDiff文档,我的ant build.xml是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<project name="jdiff" default="jdiff_report" basedir=".">

<target name="jdiff_report" depends="">
  <property name="JDIFF_HOME" value="/Users/Desktop/diffSource/jdiff-1.1.1" />
  <taskdef name="jdiff" classname="jdiff.JDiffAntTask" classpath="${JDIFF_HOME}/antjdiff.jar" />

        <jdiff destdir="./" verbose="off" stats="off" docchanges="on">

            <old name="Project.previous">
                <dirset dir="/Users/Desktop/diffSource/docs/old"
                  includes="com/**"/>
            </old>

            <new name="Project.current">
                <dirset dir="/Users/Desktop/diffSource/docs/new"
                   includes="com/**"/>
            </new>

        </jdiff>

</target>
</project>

由于存在错误,我无法获取java类的相应xml,以便JDiff进行比较。我已经看到,
jdiff
不接受
target
属性,那么我如何告诉ant使用Java1.7来完成这个任务呢?

看来jdiff-ant任务支持一个
source
属性,该属性为特定版本的java配置任务。例如:

<jdiff destdir="./" verbose="off" stats="off" docchanges="on" source="1.7">
...
</jdiff>

...

在上面的示例中,
source=“1.7”
配置JDiff,以便它可以处理Java 1.7代码。

如果您使用maven repos,您可以使用

通过执行以下命令,您可以从Ant轻松使用它:

<exec executable="java">
 <arg value="-jar"/>
 <arg value="spf4j-jdiff-maven-plugin-8.5.6-uber.jar"/>
 <arg value="-gId"/>
 <arg value="artfGroupId"/>
 <arg value="-aId"/>
 <arg value="artifactId"/>
 <arg value="-fromVersion"/>
 <arg value="1.0"/>
 <arg value="-toVersion"/>
 <arg value="3.0"/>
 <arg value="-o"/>
 <arg value="target/destination"/>
</exec>


它将在您从maven repo指定的版本之间生成API差异报告。

这非常有效!请问您是如何理解这个
source
属性的?我找到了。在源代码中,我看到有一个名为
setSource
的方法。在Ant中,任何以“set”开头的Java方法都是可以在XML中设置的属性。谢谢!
<exec executable="java">
 <arg value="-jar"/>
 <arg value="spf4j-jdiff-maven-plugin-8.5.6-uber.jar"/>
 <arg value="-gId"/>
 <arg value="artfGroupId"/>
 <arg value="-aId"/>
 <arg value="artifactId"/>
 <arg value="-fromVersion"/>
 <arg value="1.0"/>
 <arg value="-toVersion"/>
 <arg value="3.0"/>
 <arg value="-o"/>
 <arg value="target/destination"/>
</exec>