2016-05-12 3 views
0

別のMaven POM型プロジェクト内でMaven依存関係をグループ化しようとしています。maven import pom(BOM)自身のプロジェクトを内部Mavenリポジトリ

これは依存ノード内のPOM型依存関係と依存関係管理内のBOM(Bill of Materials)の両方として使用したいと考えています。

私たちは会社内に2つのリポジトリを持っています。 (Apache Archiva - 2.2.0)。 スナップショット用とその1つはリリース用です。

私がスナップショット版を使用しようとすると、すべて正常に動作しますが、リリース版を使用したいときは、中央Mavenリポジトリ内の依存関係を探し続けるため、エラーが発生します。私は、POM依存関係がスナップショットリポジトリ内でのみ検索されているようです。

<properties> 
    ... 
    <dependency.bla-slf4j-logback-BOM.version>1.0.1</dependency.bla-slf4j-logback-BOM.version> 
    ... 
</properties> 
<dependencies> 
    ... 
    <dependency> 
     <groupId>my.groupid</groupId> 
     <artifactId>bla-slf4j-logback-BOM</artifactId> 
     <version>${dependency.bla-slf4j-logback-BOM.version}</version> 
     <type>pom</type> 
    </dependency> 
    ... 
</dependencies> 
<dependencyManagement> 
    <dependencies> 
     ... 
     <dependency> 
      <groupId>my.groupid</groupId> 
      <artifactId>bla-slf4j-logback-BOM</artifactId> 
      <version>${dependency.bla-slf4j-logback-BOM.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     ... 
    </dependencies> 
</dependencyManagement> 

にErrorMessage:

[ERROR]  Non-resolvable import POM: Failure to find my.groupid:bla-slf4j-logback-BOM:pom:1.0.1 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced @ line 234, column 22 -> [Help 2] 

使用するコマンド:

mvn dependency:tree 
  • Mavenのバージョン:ApacheのMavenの3.2.2
  • archivaバージョン:ApacheのArchiva - 2.2.0

Archivaを確認しましたが、予想される場所にアーティファクトがあります。 ローカルのmavenディレクトリもチェックしましたが、pomの依存関係が正しくダウンロードされました。

私たちのPOMプロジェクト(1.0.1)のリリースバージョンでは動作しませんが、私たちのPOMプロジェクトのスナップショットバージョン(1.0.1-SNAPSHOT)では動作します。

+0

あなたがセクションでの要素を持っているのですか? –

+0

要素と要素がsettings.xmlファイルで構成されています。私はプロジェクトのpomの内部に入れてみましたが、これは同じ結果をもたらします。この構成では、内部archivaリポジトリにある他の依存関係を取得することは問題ありません。 (これは、MavenリポジトリからのPOMのインポートをdependencyManagementセクションで使用しようとした最初の例です) –

+0

あなたのsetting.xmlにデフォルトの "中央"メイキングレポをミラーリングしてみてください: イギリス 英国中部 http:// yourrepo。COM/Mavenは 中央

答えて

1

解決策は、次のxmlブロックをsettings.xmlファイルに追加することでした。

<mirrors> 
    <mirror> 
     <id>ourcentral</id> 
     <name>our central</name> 
     <url>http://mavenrepourl.goes.here</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
</mirrors> 

これにより、内部Mavenリポジトリが中央Mavenリポジトリとしてチェックされます。

感謝を(私たちのMavenリポジトリは、リモートリポジトリとして、デフォルトの中央リポジトリを持っている):ヒシャムKH

関連する問題