0

私はちょうど別の奇妙なバグを修正しました. spring-core を pom.xml に追加した後、maven でプロジェクトをビルドしているときに「オブジェクト scala が見つかりません」というメッセージが表示されました。このエラーについてかなり長い間グーグルで調べた後、私はEclipseでプロジェクトをビルドしようとするのに十分満足していました. そして出来上がり!spring-core jar が破損していると報告されました。

だから、私の質問は: なぜmavenはそれを報告しなかったのですか? jar ファイルが有効なアーカイブであるかどうかをテストできるだけでなく、ハッシュ サムもチェックできます。そして、ハッシュサムをチェックするべきだと思います。私は何かが恋しいですか?

ところで、それは唯一のケースではありませんでした. 残念ながら、他のいくつかの詳細を思い出せません.

更新: checksumPolicy タグがこれに対処しているようです。しかし、何らかの理由で機能しません。

更新 2: これは、最初に説明したエラーを再現するテスト ケースです。

cd "<maven_local_repo>\org\springframework\spring-core\3.1.3.RELEASE"
cp spring-core-3.1.3.RELEASE.jar spring-core-3.1.3.RELEASE.jar.old
#corrupt file manually
dd skip=100 if=spring-core-3.1.3.RELEASE.jar.old of=spring-core-3.1.3.RELEASE.jar
cd "<my_project_dir>"
mvn clean package
4

2 に答える 2

1

JBoss Tattletale.i を確認してください。探しているものが含まれていると思います。

  1. JAR ファイル間の依存関係を特定する
  2. クラスパスから不足しているクラスを見つける
  3. クラスが複数の JAR ファイルに配置されているかどうかを確認する
  4. 同じ JAR ファイルが複数の場所にある場合の特定 各 JAR ファイルが必要なものと提供するもののリスト
  5. クラスの SerialVersionUID を確認する
  6. バージョン番号が異なる類似の JAR ファイルを見つける
  7. バージョン番号のない JAR ファイルを検索する
  8. JAR ファイル内のクラスを見つける
  9. プロジェクトの OSGi ステータスを取得する
  10. ブラック リストにある API の使用を削除する

here で説明されているように、maven ビルドに統合できます。

于 2012-12-23T09:52:01.650 に答える
0

Maven はハッシュサムをチェックします。

Maven を実行すると、コマンドライン オプションを使用できます。
チェックサムが一致しない場合、ビルドに失敗します:
-C,--strict-checksums チェック
サムが一致しない場合に警告します:
-c,--lax-checksums

于 2012-12-26T09:08:42.980 に答える