如何在 java 1.7 上 运行 JDiff
How to run JDiff on java 1.7
我有一个使用 java 1.7 功能的 java 项目,我想用这个项目的两个版本生成一个 JDiff 文档,我的蚂蚁 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>
这一切都在 build.xml 中。
但是当我 运行 ant
时,我收到了这条日志消息:
warning: [options] bootstrap class path not set in conjunction with -source 1.5
[Javadoc for Project.previous] /Users/Desktop/diffSource/docs/old/com/java/A/B.java:194: error: diamond operator is not supported in -source 1.5
由于有错误,无法得到java类对应的xml供JDiff比较。我已经看到 jdiff
不接受 target
属性,那么如何告诉 ant 使用 java 1.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 存储库,您可以使用 spf4j-jdiff-maven-plugin
您可以通过执行以下命令从 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 存储库指定的版本之间生成 API 差异报告。
我有一个使用 java 1.7 功能的 java 项目,我想用这个项目的两个版本生成一个 JDiff 文档,我的蚂蚁 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>
这一切都在 build.xml 中。
但是当我 运行 ant
时,我收到了这条日志消息:
warning: [options] bootstrap class path not set in conjunction with -source 1.5
[Javadoc for Project.previous] /Users/Desktop/diffSource/docs/old/com/java/A/B.java:194: error: diamond operator is not supported in -source 1.5
由于有错误,无法得到java类对应的xml供JDiff比较。我已经看到 jdiff
不接受 target
属性,那么如何告诉 ant 使用 java 1.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 存储库,您可以使用 spf4j-jdiff-maven-plugin
您可以通过执行以下命令从 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 存储库指定的版本之间生成 API 差异报告。