問題タブ [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環境に配信する必要がある私たちにとって重要です。

残念ながら、これを使おうとすると、すべてのJavaAPI呼び出しが違反として報告されます。

この問題を経験したのは私だけではありませんが、他の多くの人が成功しているようです。

誰かがこの目的のために機能するPOMスニペットを持っている場合、それは本当に役立つ答えになります。

org.jvnetに戻ったバージョン(1.2)ではなく、central(1.4)で公開されたバージョンを使用しようとしていることに注意してください。

0 投票する
2 に答える
196 参照

java - 特定のJavaバージョンへの依存関係についてソースをチェックするためのツール

アプリケーションのどの部分が特定のJavaバージョンでのみ実装されているJavaAPIメソッドを呼び出すかを、ソースから(またはコンパイルされたクラスからでも)検出する簡単な方法(ツールなど)はありますか?(たとえば、私のアプリのどの部分がJava6固有であるか)

必ずしもすべてのClassMismatchErrorsを飛び越えて、試行錯誤の方法を避けたいとは限りません。たとえば、Java6用に作成された場合にアプリケーションのどの部分が機能しないかを文書化したいだけで、バージョン5のJDKで実行したいとします。

このようなものはありますか?Googleは今回は役に立ちませんでしたし、ここで解決策も見つかりませんでした(実際にはまれなケースです:)

0 投票する
1 に答える
685 参照

maven - Animal-sniffer maven プラグイン:署名を署名アーティファクトに変換する方法は?

Animal Snifferを試しています。

.signatureファイルを作成しました。しかし、を実行するcheckには、「署名アーティファクト」が必要です。

これはJDK用です。プロジェクトのモジュール用に 1 つ必要です。

それがないと、プラグインは文句を言います:

どのように作成すればよいですか?

サブ質問: プロジェクトのすべてのモジュールのファイルを集約できますか?

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 animal sniffer プラグインを使用して独自の API を確認する

アニマル スニファーを使用して、1 つのクラスと 1 つのメソッドのみを含む独自の API に対してクラスをチェックしたいと考えています。

プロジェクトのビルドには、次の単純な POM が使用されます。

ビルドは正常に実行され、TestAPI-0.0.1-SNAPSHOT.signature と jar が私の maven リポジトリにインストールされます。

次に、依存関係として TestAPI を追加しtestMethod、別のプロジェクトの を使用します。

このプロジェクトでは、別の目的で動物スニファー プラグインを追加しました。

もちろん、このビルドも正常に実行されます。testMethodここで、を 2 つのパラメーターを持つように変更します。

そして、2 番目のプロジェクトから使用します。

今回は、署名が変更されているため、2 番目のプロジェクトのビルドが失敗することが予想されます。signatures-file に保存されているものとは異なります。しかし、ビルドは成功し、animal-sniffer-plugin は次の 2 行のみを出力します。

mvn testたとえば、API で定義されていないものを呼び出しても、ビルドは成功します (呼び出します)。

ユースケースが間違っているのでしょうか、それとも POM の構成ミスが原因でしょうか?

0 投票する
1 に答える
38 参照

maven - animal-sniffer-maven-plugin だけで一部のクラスまたはパッケージをチェックするにはどうすればよいですか?

次の構成では、限定されたクラスとパッケージの署名を確実にチェックするにはどうすればよいですか?