10

私はMavenを初めて使用し、依存関係の追加に苦労しています。既存のプロジェクトをMavenに変換しようとしていますが、参照されているライブラリにすべてのjarの依存関係を追加した後、アーティファクトが見つからないというエラーメッセージが表示されます。

Missing artifact stax:stax:jar:1.0    
Missing artifact clover:clover:jar:1.3-rc4
Missing artifact log4j:log4j:bundle:1.2.16
Missing artifact stax:stax-ri:jar:1.0

この投稿を読んでから:Mavenの欠落しているアーティファクトエラーを処理する方法は?、これらのjarを手動でダウンロードして、ローカルのMavenリポジトリに追加する必要があるようです。私の質問は、これらの瓶をどのように見つけるかです。グーグルで調べてみたところ、似たような名前の瓶が見つかりましたが、正確には似ていないので、正しい瓶かどうかはわかりません。

この問題に対処するためのヒントはありますか?log4j jarは、私の元のプロジェクトの参照ライブラリに明示的にリストされている唯一のjarであるため、他のjarは私が持っている他のjarで必要とされていると思いますが、どこにあるのか、正確な名前はわかりません。する必要があります。

ありがとう!

4

9 に答える 9

21

返信してくれた皆さんに感謝します。問題の実際の原因は、これら3つの欠落しているアーティファクトのそれぞれについて、何らかの理由で、Mavenがそれらをローカルリポジトリにダウンロードしたときに、.lastUpdatedがjarの最後に追加されたことです。たとえば、stax-1.0.jar.lastUpdatedです。これが、Mavenがstax-1.0.jarを見つけられなかった理由です。

そのため、この問題を修正するには、stax-1.0.jarを手動でダウンロードしてから、Mavenが見つけられるように、混乱したファイルとまったく同じ場所にあるローカルのMavenリポジトリにインストールする必要がありました。(たとえば、次のコマンドを使用します。

mvn install:install-file -Dfile=<path-to-file>/stax-1.0.jar         
-DgroupId=stax -DartifactId=stax -Dversion=1.0 -Dpackaging=jar

既存の誤ったファイルとまったく同じgroupIdとartifactIdを使用することは、Mavenがそれを見つけるために重要でした。

于 2012-04-06T17:15:18.253 に答える
2

依存関係の検索サイトはmaven.apache.orgにあります。左側のNavigationMenüエントリFAQ(公式)に移動し、Thunをページの最後に移動します。

于 2012-04-06T11:29:24.603 に答える
1

Maven検索またはmvnrepository.comを使用します。staxなど、他の公開リポジトリでjarを探しているgoogleを使用して見つからない場合:

maven stax-ri pom

私の最初の結果は次のとおりです。

http://maven.nuxeo.org/nexus/content/groups/public/stax/stax-ri/1.0/

その他の公開リポジトリ:

http://download.java.net/maven/2

http://download.java.net/maven/1

http://repository.codehaus.org

http://repository.jboss.org/nexus/content/groups/public-jboss

http://maven.springframework.org/release

于 2012-04-06T09:51:16.723 に答える
1

POM定義がlog4jに対して正しくない可能性が高くなります。log4jに関連するすべてのものは、Mavenですぐに利用できるはずです。

また、バンドルの名前(log4jなど)がわかっている場合は、ほとんどの場合、最初の数ヒットで「[バンドル名] mavenpom」をグーグルですばやく検索できます。方法に関するクイックスニペットを含むMavenリポジトリを取得する必要があります。それを含めるか、バンドルされたjarとMavenの手順の実際のWebサイトを含めます。

例:log4j:

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>
</dependencies> 

場合によっては、アイテムを見つけるためにリポジトリを指定する必要があります(それがより大きなMavenリポジトリでホストされていない場合)

次のように新しいリポジトリを指定できます

<repositories>
    <repository>
        <id>Java.Net</id>
        <url>http://download.java.net/maven/2/</url>
    </repository>
</repositories>

最後に、すでに作成されたアーティファクトが絶対に見つからない場合(これは通常、プロジェクトに含めることができない独自のjarやドライバーに当てはまります)、ユーザーにコマンドラインから手動でアイテムをインストールさせることができます。

mvn install:install-file -DgroupId = [group-id] -DartifactId = [artifact-id] -Dversion = [version] -Dfile = / path / to / the / file -Dpackaging = [type]

次に、上記の情報を使用して、Mavenファイルでそれを参照できます。

たとえば、salesforce.comプロジェクトのカスタムリファレンスがあります

mvn install:install-file -DgroupId = com.salesforce -DartifactId = wsc -Dversion = 22 -Dfile = \ tsclient \ H \ development \ java \ wsc-22.jar -Dpackaging = jar

Mavenでアクセスするには:

<dependency>
    <groupId>com.salesforce</groupId>
    <artifactId>wsc</artifactId>
    <version>22</version>
</dependency>

最後に、それぞれのWebサイトでjar(またはmaven情報)を見つけることができます(これらのリンクはjar名に基づいているだけであることに注意してください。これらは実際のWebサイトではない可能性があります。正しいことがわかっているlog4jはありません。 )。

スタックス

クローバー

Log4j

于 2012-04-05T22:53:47.673 に答える
1

pom.xmlに新しいリポジトリを追加してみることができます

<repositories>
     <repository>
    <id>java.net</id>
    <url>http://download.java.net/maven/2/</url>
    </repository>
      <repository>
        <id>jboss</id>
        <url>http://repository.jboss.com/maven2</url>
 </repository>
</repositories>
于 2015-04-15T10:14:55.823 に答える
1

数日後、このばかげたエラーが私を悩ませました、私は次の記事を見つけました

著者は、ワークスペースリポジトリがあり、それが古くなっている可能性があると説明しています。私の場合、正しいプラグインを再度インポートするのに役立ちました。ワークスペースリポジトリが更新され、すべてが正常です。

于 2015-12-04T14:35:45.730 に答える
0

あなたの問題はMNG-4142と関係があるかもしれません。このバグは、アーティファクトでlocalCopyがに設定されている場合、Mavenが新しいスナップショットをダウンロードしないことを意味します。truemaven-metadata-local.xml

このバグのタイトルは少し誤解を招く可能性があるため、コメントを読んで作業していることに注意してください。

-UMavenでフラグを使用するとこの問題が解決すると思うかもしれませんが、明らかにそうではありません。

現在の回避策は、のすべてのインスタンスを検索しmaven-metadata-local.xml、の値をに変更しているlocalCopyようfalseです。

于 2013-02-22T12:18:06.817 に答える
0

log4jバージョンを1.2.15から1.2.16に変更することで、この問題を解決しました。

于 2013-06-10T18:45:19.453 に答える
0

また、dom4jが原因である可能性もあります。以下の設定を使用した場合にも同じエラーが発生しました。

<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>20040902.021138</version>
</dependency>

以下に変更したところ、エラーはなくなりました。

<dependency>
    <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>1.6.1</version>
</dependency>
于 2013-06-28T03:08:28.403 に答える