Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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/8/api/5.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 检测API更改/演变_Java_Api_Compatibility - Fatal编程技术网

Java 检测API更改/演变

Java 检测API更改/演变,java,api,compatibility,Java,Api,Compatibility,我想测量给定Java项目的API演变,特别是新的/重命名的类、新方法、新弃用的方法等。是否有工具可以检测这些变化 早在2007年,就启动了一个二进制兼容性检查程序,但是我找不到最后的工作。我会使用二进制兼容性检查程序。从Clirr网站: 这是怎么一回事? Clirr是一个检查Java的工具 二进制和源代码库 与旧版本的兼容性。 基本上你给它两套罐子 文件和Clirr转储一个 公共api的更改。克里尔 Ant任务可以配置为中断 如果检测到不兼容,则生成 api更改。连续 集成过程Clirr can

我想测量给定Java项目的API演变,特别是新的/重命名的类、新方法、新弃用的方法等。是否有工具可以检测这些变化

早在2007年,就启动了一个二进制兼容性检查程序,但是我找不到最后的工作。

我会使用二进制兼容性检查程序。从Clirr网站:

这是怎么一回事? Clirr是一个检查Java的工具 二进制和源代码库 与旧版本的兼容性。 基本上你给它两套罐子 文件和Clirr转储一个 公共api的更改。克里尔 Ant任务可以配置为中断 如果检测到不兼容,则生成 api更改。连续 集成过程Clirr can 自动防止意外事故 二进制或源代码的介绍 兼容性问题

特征
  • 报告所有API更改(目前仅部分实施)
  • 评估每一个变更wrt。二进制和源代码兼容性
  • 支持纯文本和XML报告
  • 灵活的故障处理(警告与错误、中断生成或设置) 错误属性)

顺便说一句,gwt源代码中似乎有一个api检查器,不知道这是否是所提到的GSoc项目的产品

也用于

,可能也值得一提

JDiff是一个Javadoc doclet 生成所有项目的HTML报告 包、类、构造函数、, 方法,以及已删除的字段 以任何方式删除、添加或更改, 包括他们的文件,当 比较了两种api。这是非常重要的 用于准确描述发生了什么 在两个版本的 产品。只有API(应用程序 每个版本的编程接口) 比较一下。它不比什么 源代码在执行时不起作用


据我所知,它在旧版本的sourcefolder上运行,并生成一个xml文件。新版本的sourcefolder也一样。然后比较两个xml输出并编译变更列表。在html javadoc api样式中,还有一个新的api演化检查工具,名为

,您可能也想试试

试试这个工具。它是开源的。该工具显示API更改,并检测两个jar存档之间的向后源代码(SC)和向后二进制文件(BC)兼容性问题:

japi-compliance-checker -old LIB-0.jar -new LIB-1.jar
log4j的示例报告:

您可以在特定库版本的报告中按严重性级别找到已发现兼容性问题的分类:


JDiff在代码的Javadoc上运行,而不是在代码上运行。它是Clirr的好伴侣(如果您可以信任Javadoc),相关项目()中也提到了它。但我更喜欢在代码级别工作的东西。这就是我引用的实际项目!链接问题:这是一个很棒的工具!!截至2018年,Clirr看起来非常过时。我认为它甚至不适用于Java8编译的jar文件