8

一般に、maven リポジトリに見つからないリソースを解決するにはどうすればよいですか? pom.xml に追加できるリポジトリの別のリストはありますか? コマンドラインとしてリストされているソリューションを試しましたが、mavenが成功と報告したにもかかわらず、機能しませんでした。

I tried to build test-analytics, but got error:

[INFO]    task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 6 resources
Downloading: http://repo1.maven.org/maven2/com/google/code/gwt-dnd/gwt-dnd/3.1.1/gwt-dnd-3.1.1.pom
[INFO] Unable to find resource 'com.google.code.gwt-dnd:gwt-dnd:pom:3.1.1' in repository central (http://repo1.maven.org/maven2)
Downloading: http://repo1.maven.org/maven2/com/google/code/gwt-dnd/gwt-dnd/3.1.1/gwt-dnd-3.1.1.jar
[INFO] Unable to find resource 'com.google.code.gwt-dnd:gwt-dnd:jar:3.1.1' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) com.google.code.gwt-dnd:gwt-dnd:jar:3.1.1

  Try downloading the file manually from the project website.

  Then, install it using the command: 
      mvn install:install-file -DgroupId=com.google.code.gwt-dnd -DartifactId=gwt-dnd -Dversion=3.1.1 -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there: 
      mvn deploy:deploy-file -DgroupId=com.google.code.gwt-dnd -DartifactId=gwt-dnd -Dversion=3.1.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency: 
    1) com.google.testing.testify.risk.frontend:test-analytics:war:1.0-SNAPSHOT
    2) com.google.code.gwt-dnd:gwt-dnd:jar:3.1.1

----------
1 required artifact is missing.

for artifact: 
  com.google.testing.testify.risk.frontend:test-analytics:war:1.0-SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)



[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sun Nov 18 21:24:23 EST 2012
[INFO] Final Memory: 16M/238M
[INFO] ------------------------------------------------------------------------

コマンドとエラーは次のとおりです。

 mvn deploy:deploy-file -DgroupId=com.google.code.gwt-dnd -DartifactId=gwt-dnd -Dversion=3.1.1 -Dpackaging=jar -Dfile=gwt-dnd-3.1.1.jar
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'deploy'.
[INFO] ------------------------------------------------------------------------
[INFO] Building test-analytics
[INFO]    task-segment: [deploy:deploy-file] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] One or more required plugin parameters are invalid/missing for 'deploy:deploy-file'

[0] Inside the definition for plugin 'maven-deploy-plugin' specify the following:

<configuration>
  ...
  <url>VALUE</url>
</configuration>

-OR-

on the command line, specify: '-Durl=VALUE'

[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Tue Nov 20 14:10:37 EST 2012
[INFO] Final Memory: 14M/238M
[INFO] ------------------------------------------------------------------------
4

2 に答える 2

17

Maven の世界についての基本的な理解が不足しています。そのため、レポの簡単な要約が役立つはずです。

手始めに、「箱から出して」mavenを実行すると、2つのリポジトリが利用可能になります。1) maven central と 2) ローカル リポジトリ、つまり ~/.m2/repository があります。ローカル リポジトリは一種のキャッシュであり、"mvn install" コマンドを使用して、ローカルでビルドしたアーティファクトが "インストール" される場所です。「mvn deploy」コマンドはアーティファクトを「デプロイ」します。これはインストールに似ていますが、アーティファクトを「リモート リポジトリ」に配置することを意味します。Maven Central は、単一のローカル リポジトリを除くすべてのリポジトリと同様にリモート リポジトリですが、勝手にデプロイすることはありません。これは、精査されたリリース品質のアーティファクト用です。

そのため、ビルドは Google アーティファクトを見つけることができませんでした。これは、確認できますが、それらが Maven Central にないことを意味します。http://search.maven.org/

それらが存在しない場合は、いくつかのオプションがあります。

1)アーティファクトをローカルリポジトリに「インストール」します(非常に軽量であるため、これが最初のステップです)

2) nexus などの独自のリポジトリ サーバーを実行します。これはあなた自身の「リモート リポジトリ」であり、Google のものをそこに「デプロイ」できます。

3) Google のものが公開されている別のリモート リポジトリにあるかどうかを調べます。すぐに使用できる Maven リポジトリ定義に含まれていない重要なものがいくつかありますが、それらを追加できます。

これらの 3 つのオプションは、さまざまな状況に対する解決策というよりも、代替案ではないことに注意してください。あなたが何かをスパイクしたりポックしたりするだけなら、私は間違いなくナンバー1を選びます. これらのアーティファクトを使用する本格的な開発作業をセットアップする場合は、少なくとも #3、おそらく #2 を実行する必要があります。#2 は、本当に maven を多用する場合、生活を楽にするために重要です。Maven のほとんどは、概念的には、独自のレポ サーバーを持っていることを前提としているため、これは素晴らしい教育的経験でもあります。

于 2012-11-21T15:35:49.403 に答える
1

POMファイルでリポジトリセクションを設定する方法について読む必要があります。

ビルドに必要なサードパーティのリポジトリをキャッシュおよび集約するために、Mavenリポジトリマネージャー(Nexusなど)をセットアップすることを検討することをお勧めします。

于 2012-11-20T19:42:02.323 に答える