Mavenは依存関係を解決できませんでした、アーティファクトは解決できませんでした


132

これは私の友人からのプロジェクトだと思われます。彼は私の目の前でプロジェクトをデモンストレーションし、それから私はプロジェクトをコピーして、既存のmavenプロジェクトとしてインポートしました(私はm2eclipseプラグインます)。

そして、このエラーが発生します。このエラーは、mavenで何かをビルドしようとするたびに再現できます。

mvn dependency:tree、dependency:list、または通常のビルドパッケージを実行すると、同じエラーが発生します。

Eclipseから「パッケージ」ビルドを実行することによるエラーは次のとおりです。

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 01:55:41 WIT 2011
[INFO] Final Memory: 2M/56M
[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal on project jackpot: Could not resolve dependencies 
for project com.jeteo:jackpot:war:1.0-SNAPSHOT: The following artifacts could 
not be resolved: javax.servlet:com.springsource.javax.servlet:jar:2.5.0,
javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0, 
javax.transaction:com.springsource.javax.transaction:jar:1.1.0, 
org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6: Failure to find 
javax.servlet:com.springsource.javax.servlet:jar:2.5.0 in 
http://repository.springsource.com/maven/bundles/release was cached in the 
local repository, resolution will not be reattempted until the update 
interval of com.springsource.repository.bundles.release has elapsed or 
updates are forced -> [Help 1]

[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

そして、これはの内容ですpom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jeteo</groupId>
    <artifactId>jackpot</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Jackpot Portal Webapp</name>
    <url>http://www.jeteo.com</url>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.0.3.RELEASE</org.springframework-version>
        <org.hibernate-version>3.6.0.Final</org.hibernate-version>
        <org.aspectj-version>1.6.9</org.aspectj-version>
        <org.slf4j-version>1.5.10</org.slf4j-version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.jt400</groupId>
            <artifactId>jt400</artifactId>
            <version>6.6</version>
            <scope>compile</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${org.hibernate-version}</version>
            <scope>compile</scope>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet</artifactId>
            <version>2.5.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
            <version>1.2.0</version>
            <scope>provided</scope>
        </dependency>
        <!--
        <dependency>
         <groupId>javax.persistence</groupId>
         <artifactId>com.springsource.javax.persistence</artifactId>
         <version>1.0.0</version>
         <scope>compile</scope>
        </dependency>
        -->
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>com.springsource.javax.transaction</artifactId>
            <version>1.1.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>com.springsource.slf4j.log4j</artifactId>
            <version>1.5.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.11</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>

    </dependencies>
    <repositories>
        <!-- Spring releases -->
        <repository>
            <id>com.springsource.repository.bundles.release</id>
            <name>Spring Maven Repository Repository</name>
            <url>http://repository.springsource.com/maven/bundles/release</url>
        </repository>
        <!-- For hibernate 3.6 support -->
        <repository>
            <id>jboss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>
    <build>
        <finalName>jackpot</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <url>http://localhost:8080/manager</url>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

私は最新バージョンのmavenをダウンロードしてみて、それを日食のヘリオに含めましたが、それでも同じ問題が発生します。シェルコマンドライン(Eclipseの外)で実行しても、同じエラーメッセージが表示されます。

何が欠けていますか?


システム変数でパスを確認してください。私の場合、ユーザー変数でmaven 3のパスは正しくありましたが、システム変数でパスをmaven 2に変更した後、問題なく機能しました。理由がわからない
aastha

回答:


91

Mavenリポジトリが不足しているようです。友達に頼む.m2/settings.xml、リポジトリが含まれるようにPOMを更新したくなるでしょう。

--edit:すばやくグーグル操作した後、これをPOMに追加してみてください。

<repository>
    <id>com.springsource.repository.bundles.release</id>
    <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<repository>
    <id>com.springsource.repository.bundles.external</id>
    <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
    <url>http://repository.springsource.com/maven/bundles/external</url>
</repository>

5
ありがとうございました !私の友人は、依存関係がすでに.m2 /にキャッシュされており、Mavenがそれをダウンロードしようとしないため、彼のラップトップで機能すると述べました。そして、彼はリポジトリのエントリを共有しました、いくつかはあなたの発見のようなもので、今ではうまくいきました..お時間をいただき、ありがとうございます!そして、私が知っているかもしれない場合、どのリポジトリを使用するかを見つけるためにどのキーワードを使用しますか?昨日もググってみましたが、結局惨めでした。(笑)
バーティ

6
「xxxのPOMがありません」という警告メッセージが表示されたため、リポジトリの問題であることがわかりました。それで、「springsource maven」で検索して、springsourceプロジェクトのFAQと、Mavenで動作するように設定するためのエントリを見つけました。
wmorrell

彼の最初のアーティファクトエラーは、提供されたjar com.springsource.javax.servletです。それが提供されている場合、なぜそれがsetting.xmlと関係があるのでしょうか?
フィリップレゴ

@PhilipRegoでは.m2/settings.xml、標準のリスト以外のリポジトリリストをで指定できますrepo.maven.apache.org。この場合、JARはSpringSourceリポジトリからのものであり、Maven Centralにはありません。私は友人がSpringSourceリポジトリをlocal .m2/settings.xmlにリストしていて、代替のmavenリポジトリでアーティファクトが見つかるのでルックアップエラーが発生しないと想定していました。代わりに、JARはキャッシュされ、検索はまったく行われませんでした。
-wmorrell

1
@PhilipRegoこれらの依存関係は、提供されているものとしてマークされていません。依存関係が提供されている場合でも、コードをコンパイルするにはインターフェース定義が必要です。つまり、使用するインターフェースを定義するJARファイルが必要です。提供されている依存関係が意味するのは、JARがコードにパッケージ化されていないことだけです。
wmorrell

15

Mavenはファイルをキャッシュに保存し、ダウンロードを再試行しないでください。単に.m2ディレクトリを削除することで手動で彼を「助ける」ことができ、それから私たちの友人は古い依存関係のすべてをダウンロードします。



7

artifactIdダウンロードに失敗したすべての依存関係のためには間違っている-彼らは接頭辞されるいくつかの理由com.springsource。問題の切り取り/貼り付け?

次のようにして、それらを置き換えることができます。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

これらのアーティファクトが指定されたリポジトリで利用できない場合に備えて、これらのアーティファクトのMavenセントラルリポジトリを追加することもできます。

<repository>
    <id>maven2</id>
    <url>http://repo1.maven.org/maven2</url>
</repository>

私はそれを試しましたが、それでもエラーがありますか?パッケージタスクを実行した後のeclipseからの部分的な出力は次のとおりです。プロジェクトジャックポットで目標を実行できませんでした:プロジェクトcom.jeteo:jackpot:war:1.0-SNAPSHOTの依存関係を解決できませんでした:次のアーティファクトを解決できませんでした:javax.servlet: servlet-api:jar:2.5.0、javax.servlet:jstl:jar:1.2.0、javax.transaction:jta:jar:1.1.0:javax.servlet:servlet-api:jar:2.5.0が見つからないでrepository.springsource.com/maven/bundles/release ....解像度は<cutted>の更新間隔まで再試行されることはありません、ローカルリポジトリにキャッシュされた
バーティ

@アルバート・カム。欠落しているアーティファクトのMavenセントラルリポジトリへの参照を含むように回答を更新
Raghuram

com.springsourceプレフィックスは、アーティファクトがSpringエンタープライズリポジトリからのものであることを意味します
eis

5

jarを手動でダウンロードし、jarが保存されているフォルダーからコマンドを実行します。

mvn install:install-file -Dfile=*jar_file_name*.jar-DgroupId=*group_id* -DartifactId=*artifact_id* -Dversion=*version_no* -Dpackaging=jar

jar filejar_file_namegroup_idartifact_idversion_noMavenのリポジトリのページから入手できます。


4

同様の問題があり、pom.xmlに以下のリポジトリを追加して修正しました。

<repository>
    <id>org.springframework.maven.release</id>
    <name>Spring Maven Release Repository</name>
    <url>http://repo.springsource.org/libs-release-local</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
</repository>
<!-- For testing against latest Spring snapshots -->
<repository>
    <id>org.springframework.maven.snapshot</id>
    <name>Spring Maven Snapshot Repository</name>
    <url>http://repo.springsource.org/libs-snapshot-local</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
</repository>
<!-- For developing against latest Spring milestones -->
<repository>
    <id>org.springframework.maven.milestone</id>
    <name>Spring Maven Milestone Repository</name>
    <url>http://repo.springsource.org/libs-milestone-local</url>
    <snapshots><enabled>false</enabled></snapshots>
</repository>

4
mvn clean install -U

私の問題を解決しました。リポジトリがキャッシュされたので、最新バージョンを取得するように強制する必要がありました。


1

同様のメッセージが表示されますが、私の問題は、settings.xmlのいくつかのプロキシ設定にありました。だから私はそれらを無効にし、すべてが正常に動作します。


1

この種の問題は、次の2つの理由で発生します。

  1. 依存関係のスペルが間違っている
  2. mvn設定の構成(例:〜/ .m2 / settings.xml)が間違っています

ほとんどの依存関係をダウンロードできる場合は、理由1が最も可能性の高いバグである可能性があります。逆に、ほとんどの依存関係に問題がある場合は、settings.xmlを確認する必要があります

さて、午後中ずっと問題を解決しようとしましたが、ようやく解決しました。私の問題は、settings.xmlで発生します。settings.xmlの綴りが失われたり間違っていたりするのではなく、activeProfilesが失われます


0

私はこの問題を抱えていました。私の場合、これはIntelliJ Ideaがpom.xmlファイルのいくつかをいじっていたために発生しました(これは楽しんでいるようです!)。元のコピーに戻したところ、問題は解決しました。


0

私にもこの問題がありました。NetBeansがpom.xmlファイルに何かを追加したことが原因であることがわかりました。以前の正常な展開以降、何も追加されていないことを再確認します。


0

私のEARプロジェクトには2つのモジュール* .earと* .warがあり、*.warプロジェクトでこの依存関係エラーが発生しましたmvn eclipse:eclipse*.warプロジェクトのutf-8エンコーディングの問題を修正して解決しました。mvn -Xまたは-eオプションはここでは役に立ちませんでした。


0

私のコンピュータのファイアウォールが原因で発生したことがわかりました。オフにするとうまくいきました。


1
コンピューターのファイアウォールをオフにしても機能する場合がありますが、ネットワークの設定によっては、より安全なソリューションを探すことをお勧めします。たとえば、mavenプロセスまたはmavenセントラルに例外を追加するなど...私
山羊座

@Capricorn右、これは最高ではありませんが、私にとっては推奨されるすべてのソリューションを試しましたが、これでうまく機能します。より良い解決策があれば、教えてください、ありがとうございます!!! 編集:「MavenプロセスまたはMaven Centralの例外を追加する」と述べましたが、実際にはわかりません。これらを指定できますか?
Duc Thanh

0

そのような問題に遭遇しました。根本的な原因は.m2フォルダーです。アクセスしようとしているものが.m2フォルダーにあることを確認する必要があります(これはローカルリポジトリです)。そこにあるものがあれば、あなたは大丈夫です。これは通常、システムのユーザーフォルダー内に存在します(mac / linuxまたはWindowsでさえ)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.