问题标签 [animal-sniffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2948 浏览

java - 有人让动物嗅探器插件工作吗?

maven-animal-sniffer 插件承诺告诉我我的代码是否引用了 Java 1.6(或更新的)API。这对于我们这些在 MacOSX Snow Leopard(只有官方 1.6)上开发但需要交付到 1.5 环境的人来说很重要。

可悲的是,在尝试使用它时,我将所有 Java API 调用都报告为违规。

我不是唯一遇到这个问题的人,但显然很多其他人都成功了。

如果有人为此目的提供了一个有效的 POM 片段,那将是一个非常有用的答案。

请注意,我正在尝试使用在中央 (1.4) 上发布的版本,而不是在 org.jvnet 上发布的版本 (1.2)。

0 投票
2 回答
196 浏览

java - 用于检查源是否依赖于特定 Java 版本的工具

是否有一种快速的方法(例如工具)可以从源代码(甚至可能从编译的类)检测应用程序的哪些部分调用仅在特定 Java 版本中实现的 Java API 方法?(例如,我的应用程序的哪些部分是特定于 Java6 的)

我不一定要跳过所有ClassMismatchErrors并避免试错法。假设我只想记录应用程序的哪些部分如果是为 Java6 编写的则不能工作,并且我想在版本 5 的 JDK 中运行它。

有这样的事情吗?谷歌这次没有帮助,我也没有在这里找到任何解决方案(确实很少见:)

0 投票
1 回答
685 浏览

maven - Animal-sniffer maven 插件:如何将签名转换为签名神器?

我正在尝试动物嗅探器

我已经创建了.signature文件。但是要运行check,我需要一个“签名工件”。

这是针对 JDK 的。我的项目模块需要一个。

没有它,插件会抱怨:

我应该如何创建它?

子问题:我可以为项目的所有模块汇总文件吗?

0 投票
0 回答
566 浏览

java - Animal Sniffer Maven 插件无法检测到泛型添加

Maven Animal Sniffer 插件非常适合检测 Java API 签名更改,除非更改只是添加了泛型类型。例如,在 Java 6 中你有JList,但在 Java 7 中你有JList<E>. 如果我使用泛型类型参数,它不会与 JDK 6 一起编译,但 Animal Sniffer 不会检测到这一点。如果我在我的开发环境中使用 JDK 7 进行编译,我不会意识到我已经破坏了构建,直到我提交代码并且使用 JDK 6 的人尝试构建它。

应该无法通过嗅探的示例 Java 代码和我的 Maven 配置的相关部分如下。帮助我避免这场悲剧。:) 有什么我可以改变的,这样 Animal Sniffer 会按预期失败构建吗?

Example.java

Maven 构建配置

0 投票
1 回答
1078 浏览

java - 使用 maven 动物嗅探器插件检查自己的 API

我想使用动物嗅探器根据我自己的 API 检查一个类,它只包含一个类和一个方法:

以下简单的 POM 用于构建项目:

构建运行良好,它将 TestAPI-0.0.1-SNAPSHOT.signature 和 jar 安装到我的 maven 存储库中。

接下来我想将 TestAPI 添加为依赖项并使用testMethod来自另一个项目的。

在这个项目中,我添加了另一个目标的动物嗅探器插件:

这个构建当然也成功运行。现在我将其更改testMethod为具有两个参数:

并从第二个项目中使用它:

这次我预计第二个项目的构建会失败,因为签名已经改变。它不同于保存在签名文件中的那个。但是构建成功,并且animal-sniffer-plugin仅输出以下两行:

即使我调用了 API 中未定义的内容,构建也会成功(调用mvn test),例如:

我有错误的用例还是因为 POM 配置错误?

0 投票
1 回答
38 浏览

maven - 如何仅使用 animal-sniffer-maven-plugin 检查某些类或包?

通过以下配置,如何确保检查有限类和包的签名?

0 投票
1 回答
2292 浏览

maven - Maven 插件签名检查错误

我使用以下库作为依赖项:

执行时mvn clean install,它失败并产生以下错误:

关于为什么这个错误以及如何解决它的任何想法?谢谢

这是错误的整个输出mvn clean install

0 投票
0 回答
22 浏览

java - Animal Sniffer - Java 1.8 签名如何有用?

当构建以Java 1.8为目标时,我不明白Animal Sniffer如何有用,考虑到:

  • 如果你用javac 1.8编译的话就完美匹配了,所以我认为应该没有问题;
  • 如果您使用javac >1.8,您可以指定新--release选项,因此,使用--release 8,检查由编译器本身执行。

提前感谢您的任何澄清。