web-dev-qa-db-ja.com

Mavenは依存関係を解決できませんでした、成果物は解決できませんでした

これは私の友人からの実用的なプロジェクトであるはずです。彼は私の目の前でプロジェクトをデモンストレーションし、それから私はそのプロジェクトをコピーし、既存のMavenプロジェクトとしてインポートしました(私はm2Eclipseプラグインを使用しています)。

そして、このエラーが発生します。私はMavenで何かを作ろうとするたびにこのエラーを再現することができます。

Mvn dependency:tree、dependency:list、または通常のビルドパッケージを実行しても同じエラーになります。

Eclipseから 'package'ビルドを実行したことによるエラーは次のとおりです。

[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の内容です:

 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ヘリオスに含めようとしましたが、それでも同じ問題があります。シェルのコマンドライン(Eclipse以外)で実行しても同じエラーメッセージが表示されます。

私は何が足りないのですか?

111
bertie

あなたはいくつかの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>
75
wmorrell

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

14
Chaibi Alaa

同じ問題の代替的な情報源として、 この回答 この問題の潜在的な原因としてMaven 2とMaven 2を比較しています。私が言えるように、これはMaven 3で変更された ローカルリポジトリの解決 の変更によるものです。

7
shiri

ダウンロードに失敗したすべての依存関係の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>
5
Raghuram

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

mvn install:インストールファイル-Dfile = jar_file_name。jar-DgroupId = group_id -DartifactId = artifact_id -Dversion = version_no -Dpackaging = jar

Jarファイル、jar_file_name、group_id、artifact_id、およびversion_noは、mavenリポジトリページから入手できます。

幸せなコーディング:)

3
Cjo

私は同様の問題を抱えていて、私は私の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>
3
AAgg

私は同様のメッセージを得ました、そして、私の問題は私のsettings.xmlの中のいくつかのプロキシ設定でした。だから私はそれらを無効にし、すべてがうまくいきます。

1
kdoteu

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

0
JonnyRaa

私はあなたと同じ問題を抱えています、そしてそれはそれが私のコンピュータ上のファイアウォールのせいで起こったことがわかります。ファイアウォールをオフにしてもう一度やり直してください。がんばろう !!!

0
Duc Thanh

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

0
Barun

この種の問題は2つの理由によって引き起こされます。

  1. 依存関係のスペルが間違っている
  2. mvn設定の設定(すなわち〜/ .m2/settings.xml)が間違っている

依存関係のほとんどがダウンロードできる場合、理由1が最も可能性の高いバグかもしれません。逆に、ほとんどの依存関係に問題がある場合は、settings.xmlをご覧ください。

さて、私は午後全体で私の問題を解決しようとしました、そしてついに私はそれを手に入れました。私の問題はsettings.xmlで発生します。settings.xmlの綴りの間違いや紛失ではなく、 activeProfiles .

0
Will

私もこの問題を抱えていましたが、それはNetBeansが私のpom.xmlファイルに何かを追加したためであることがわかりました。前回の正常な配置以降に何も追加されていないことを再確認してください。

0
Eduardo Dennis