如何在java 1.7上运行JDiff



我有一个使用 java 1.7 功能的 Java 项目,我想生成一个包含该项目的两个版本的 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>

这一切都在构建中.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 差异报告。

相关内容

  • 没有找到相关文章

最新更新