web-dev-qa-db-ja.com

「...のPOMがありません。Mavenリポジトリに存在していても、利用可能な依存関係情報がありません」

問題:

Mavenリポジトリーから依存関係をコピーしても、依存関係はダウンロードされません。

Eclipseの依存関係にカーソルを合わせると、「Maven Missing artifact org.raml:jaxrs-code-generator:jar:2.0.0」という警告が表示されます。

mvn installまたはmvn compileを試すと、「[WARNING] The POM for org.raml:jaxrs-code-generator:jar:2.0.0 is missing, no dependency information available」という警告が表示されます。

試行:

  • jar~/.m2/repository/org/raml/jaxrs-code-generator/2.0.0フォルダーにダウンロードし、エディターで更新します。

    • installまたはcompileの場合、それは無視されるようです。
  • mvn -Uを実行しています。

    • installまたはcompileと同じです。

詳細:

    <dependency>
        <groupId>org.raml</groupId>
        <artifactId>jaxrs-code-generator</artifactId>
        <version>2.0.0</version>
    </dependency>
  • 依存関係existsMavenリポジトリ (バージョンも正しい)。

  • Eclipse EE Neon 4.6.3、Apache Maven 3.3.9、Java 1.8.0_121を使用します。

  • settings.xmlフォルダーに~/.m2がありません。

  • ローカルまたはその他のリポジトリを使用しません。

17
JoseHdez_2

警告メッセージを注意深くお読みください:

Org.raml:jaxrs-code-generator:jar:2.0.0のPOMが欠落しており、利用可能な依存関係情報がありません

問題はjarではなく、欠落しているpom.xmlです。
pom.xmlには、Mjarがビルド中およびアプリケーション全体のパッケージング中にプルするこのjarに必要な依存関係がリストされています。 だから、あなたは本当にそれを必要とするかもしれません。

もちろん、この問題は他のMaven依存関係で発生する可能性があり、解決するアイデアは常に同じであることに注意してください。

ミュールのウェブサイト 関連する情報に加えて、非常によく文書化されています。


の解き方 ?

1)簡単な回避策:インターネットでアーティファクトのpom.xmlを探します

アーティファクトID、グループID、およびそのバージョンをググリングすると、一般に興味深い結果が得られます。それをダウンロードするためのmavenリポジトリリンクです。
org.raml:jaxrs-code-generator:jar:2.0.0依存関係の場合、Mavenラバリポジトリからpom.xmlをダウンロードできます。

https://repository.mulesoft.org/nexus/content/repositories/releases/org/raml/jaxrs-code-generator/2.0.0/

2)単一のMavenプロジェクトのクリーンな回避策:リポジトリ宣言をpomに追加します。

あなたの場合、Mavenラバリポジトリを追加します。

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    ...
    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshot Repository</name>
            <url>http://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>
    ...
</project>

3)Mavenプロジェクトのクリーンな回避策:settings.xmlにリポジトリ宣言を追加します

 <profile> 
   <repositories>
    ...
    <repository>
      <id>mulesoft-releases</id>
      <name>MuleSoft Repository</name>
      <url>http://repository.mulesoft.org/releases/</url>
      <layout>default</layout>
    </repository>
    <repository>
      <id>mulesoft-snapshots</id>
      <name>MuleSoft Snapshot Repository</name>
      <url>http://repository.mulesoft.org/snapshots/</url>
      <layout>default</layout>
    </repository>
     ...
  </repositories>     
</profile>

まれに、依存関係を宣言するpom.xmlがどこにもないことに注意してください。そのため、アーティファクトに依存関係が必要かどうかを確認する必要があります。

16
davidxxx

外部リポジトリをpomに追加する必要があります。これはMulsoft-ReleaseではなくMaven Centralリポジトリを使用しているためです

<project>
   ...
    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Repository</name>
            <url>http://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
    </repositories>
  ...
</project>

依存関係

Apache Maven-複数のリポジトリの設定

2
XPLOT1ON