問題タブ [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.
java - 動物スニファプラグインを動作させる人はいますか?
maven-animal-snifferプラグインは、私のコードにJava 1.6(またはそれ以降)のAPIへの参照があるかどうかを教えてくれることを約束します。これは、MacOSX Snow Leopard(公式の1.6しかありません)で開発しているが、1.5環境に配信する必要がある私たちにとって重要です。
残念ながら、これを使おうとすると、すべてのJavaAPI呼び出しが違反として報告されます。
この問題を経験したのは私だけではありませんが、他の多くの人が成功しているようです。
誰かがこの目的のために機能するPOMスニペットを持っている場合、それは本当に役立つ答えになります。
org.jvnetに戻ったバージョン(1.2)ではなく、central(1.4)で公開されたバージョンを使用しようとしていることに注意してください。
java - 特定のJavaバージョンへの依存関係についてソースをチェックするためのツール
アプリケーションのどの部分が特定のJavaバージョンでのみ実装されているJavaAPIメソッドを呼び出すかを、ソースから(またはコンパイルされたクラスからでも)検出する簡単な方法(ツールなど)はありますか?(たとえば、私のアプリのどの部分がJava6固有であるか)
必ずしもすべてのClassMismatchErrorsを飛び越えて、試行錯誤の方法を避けたいとは限りません。たとえば、Java6用に作成された場合にアプリケーションのどの部分が機能しないかを文書化したいだけで、バージョン5のJDKで実行したいとします。
このようなものはありますか?Googleは今回は役に立ちませんでしたし、ここで解決策も見つかりませんでした(実際にはまれなケースです:)
maven - Animal-sniffer maven プラグイン:署名を署名アーティファクトに変換する方法は?
Animal Snifferを試しています。
.signature
ファイルを作成しました。しかし、を実行するcheck
には、「署名アーティファクト」が必要です。
これはJDK用です。プロジェクトのモジュール用に 1 つ必要です。
それがないと、プラグインは文句を言います:
どのように作成すればよいですか?
サブ質問: プロジェクトのすべてのモジュールのファイルを集約できますか?
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 ビルド構成
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 の構成ミスが原因でしょうか?
maven - animal-sniffer-maven-plugin だけで一部のクラスまたはパッケージをチェックするにはどうすればよいですか?
次の構成では、限定されたクラスとパッケージの署名を確実にチェックするにはどうすればよいですか?