1

私はMavenを使用してプロジェクトを他のプロジェクトと統合していますが、おそらく人気のない方法で問題が発生しました。

Ant でコンパイルするために使用されるプロジェクトがあります。Ant スクリプトは大きくて素晴らしいので、Maven を使用して統合する場合は、Ant でコンパイルし続けることにしました。

ここで、Ant のコンパイル出力が res-1.0-SNAPSHOT.tar.gz であるとします。(任意のファイル名が可能ですが、それは tar.gz です) そして、「snapshots」と呼ばれる nexus がホストするスナップショット リポジトリにファイルを展開しています。

このコマンドでデプロイしようとしました:

mvn deploy:deploy-file \
  -DgroupId="com.my-company" \
  -DartifactId="res" \
  -Dversion="1.0-SNAPSHOT" \
  -Dpackaging="tar.gz" \
  -Dfile="res-1.0-SNAPSHOT.tar.gz" \
  -Durl="http://our-nexus-ip/nexus/content/repositories/snapshots" \
  -DrepositoryId="snapshots"

~/.m2 にプロキシとサーバーの設定を含む単純な settings.xml があります。ただし、現在の進行状況ではサーバー設定はまだ使用されていないため、パスワードが間違っていてもエラーは発生しません。

出力は次のようになります。

[[root@cnbi maven]# ./run.sh
+ mvn deploy:deploy-file -DgroupId=com.my-company -DartifactId=res -Dversion=1.0-SNAPSHOT -Dpackaging=tar.gz -Dfile=res-1.0-SNAPSHOT.tar.gz -Durl=http://135.252.234.142:8081/nexus/content/repositories/snapshots -DrepositoryId=snapshots
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'deploy'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO]    task-segment: [deploy:deploy-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [deploy:deploy-file]
[INFO] Retrieving previous build number from snapshots
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error retrieving previous build number for artifact 'com.my-company:res:tar.gz': repository metadata for: 'snapshot com.my-company:res:1.0-SNAPSHOT' could not be retrieved from repository: snapshots due to an error: Error transferring file

Server returned HTTP response code: 503 for URL: http://135.252.234.142:8081/nexus/content/repositories/snapshots/com/my-company/res/1.0-SNAPSHOT/maven-metadata.xml
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51 seconds
[INFO] Finished at: Tue Jun 12 08:44:13 CST 2012
[INFO] Final Memory: 7M/209M
[INFO] ------------------------------------------------------------------------

ご覧のとおり、maven-metadata.xml が見つかりません。確かに、ファイルとそのフォルダ「com/my-company」はリポジトリにまったく存在しません。

あなたが見つけるかもしれないMavenの誤用に加えて、私の質問は次のとおりです。

1) Maven を正しい方法で使用していますか? (deploy:deploy-file... を使用して tar.gz をデプロイします)

2) 間違ったパラメータはありますか?

3) maven-metadata.xml の目的は何ですか? そこにはありませんが、Mavenはそれを見つけることを主張しています-生成されていると思いますが、いくつかの手順がありませんか?

解決策はばかげているかもしれません。私はMavenに精通していません。残念ながら、やらなければならないことです... 助けてください。

Maven のバージョンは 2.0.11 です。詳しく知りたい場合はお知らせください。

4

2 に答える 2

2

同じ問題があり、ネクサスにバグがありました。

maven3 (同じsettings.xmlpom.xml、および.m2リポジトリ)を使用すると問題が解決し、nexus をアップグレードするよりも簡単です。

このバグも確認できます。

于 2012-08-08T08:03:53.350 に答える