2011-10-17 11 views
7

私はまた~/.m2/repository/aGroup/anArtifact/aVersionディレクトリ内anArtifact-aVersion.jarファイルを持っている私のpom.xmlに.jarがリポジトリに存在する場合、Mavenが.pomファイルを探している理由は何ですか?

<dependency> 
    <groupId>aGroup</groupId> 
    <artifactId>anArtifact</artifactId> 
    <version>aVersion</version> 
</dependency> 

を次の依存関係を持っています。

私はプロジェクトの構築を開始、Mavenは代わりに.jarファイルを使用しての.pomファイルを検索し、既存の.jarファイルを使用するには、次の私は設定することができますどのように

http://repo1.maven.org/maven2/aGroup/anArtifact/aVersion/anArtifact-aVersion.pom

Mavenをダウンロードしようと?

+0

ローカルリポジトリ(〜/ .m2/repository)にそのjarファイルを入れましたか? Mavenはそれをダウンロードしましたか? – Daniel

答えて

7

すべてのjarファイルは、それを記述したPOMファイルを持っている必要があり、あなたはちょうどこのような単純なものを追加することができます。

<?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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>aGroup</groupId> 
    <artifactId>aArtifactId</artifactId> 
    <version>aVersion</version> 
    <packaging>jar</packaging> 
    <name>a Name</name> 
</project> 
+1

リポジトリには、この種の ".pom"ファイルがjarの隣にあるはずですが、jarファイル自体の中にすでにpom.xmlとplugin.xmlファイルがありますか?それらの1つのコピーでなければなりませんか? – Dima

+1

はいpomがそこにいる必要があります。はい、私は含まれているpomの単なるコピーに過ぎません。 artifactoryのようなローカルリポジトリは、あなたがjarをアップロードすると、実際にはインクルードされたpomを抽出するだけです。 – HefferWolf

3

これは、とりわけ推移的な依存関係を解決するために、pomを探しています。

2

はオフラインモードでMavenを使用するには、「-o」スイッチを使用してビルドを実行します。オフラインモードでは、Mavenはリモートリポジトリのスナップショット依存関係の更新をチェックしません。

4

mvn install:install-file ...

使用するMavenのISTによって構築されていなかったローカルリポジトリにアーティファクトをインストールするための最良の方法は、install:installゴールを見てみましょう。

2

nexusにインストールされているPOMがjarを記述します。対応するjarに関連付けられた依存関係を取得するために使用されます。プロジェクトに依存関係としてjarファイルを追加すると、jarファイルに必要なすべてのjarファイルが対応するpomによって識別されます。

関連する問題