2012-01-12 22 views
2

私は、これはMavenの背後にある考え方ではないことを知っているが、私はしたい
MavenのlocalRepository

は相対パスでprogectディレクトリ内のローカルMavenのレポ(.m2)を持っています。 私のポンにこれをする方法はありますか?よりよい選択肢がありますか?

だから、基本的に私が望むのは外部リポジトリに依存しないことです。あなたの助け:)

PS1用

Thxを - 私は、Javaのnoobの一種だ(C/C++ここ)との合計のmaven
PS2 - Mavenのインストールディレクトリにsettings.xmlファイル/ confにはlocalRepository要素がありますが、そこには相対的なパッチはありません。さらに、これはprogectにリンクされるのではなく、mavenがインストールされているボックスにリンクされます。

+0

コマンドライン(-DlocalRepository)またはあなたのpom( ...)にlocalRepositoryを設定しようとすることもできますが、最後のものが動作するかどうかは疑問です。あなたは何を達成しようとしていますか? POMレベルのリポジトリは、おそらく1つのモジュールが(ビルドされた)依存関係を見つけることができないため、マルチモジュールビルドを破ることになります。通常、人々はlocalRepository設定を使用して、ビルド環境からビルド環境への潜在的な「汚染」を防ぎます。これは完全にokですが、pomレベルではなくmvn呼び出しレベルで行われます。 – ptyx

答えて

4

のpom.xmlにあなたはすべてのjarライブラリを含むプロジェクトのルートフォルダの下にサブフォルダのLIBがあると、ファイルシステムに格納されている特定のjarファイルの場所に依存参照を設定できることに注意してください:

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.0.4</version> 
    <scope>system</scope> 
    <systemPath>${project.basedir}/lib/commons-logging-1.0.4.jar</systemPath> 
</dependency> 

このようにすると、groupId、artifactIdおよびversionが無意味になります。私自身の経験から、私はオラクルプロジェクトの前に、多くのカスタマイズされたjarファイルをオンラインMavenリポジトリ経由では入手できない、醜いが実行可能なものと見ていました。

+0

私はこれが私が探していると信じています!Thx – Uglakh

+0

@Uglakh、答えが役に立った場合、投票を検討するか受け入れてください:) – yorkw

+0

投票することはできません(それは私がlurkerのために得たものです、十分な担当者ではありません)しかし、私はthx @yorkw – Uglakh

0

私は相対パスでprogect ディレクトリ内のローカルMavenのレポ(.m2)を持っていると思います。私は私のポンをすることができる方法はありますか これは何ですか?

はい、そこにある道:あなたは$ M2_HOME \ confに\のsetting.xml

に指定することで、ローカルリポジトリへのパスを指定することができます。しかし、このアプローチは本当に良いされていない場合(または他の開発者)の仕事複数のプロジェクトがあります。

もっと良い選択肢はありますか?

はい、これよりも良い方法があります。ローカルMavenリポジトリ内の任意のjarをインポートできます。これにより、Maven Central Repoに依存しないため、プロジェクト内にローカルリポジトリを保存する必要がなくなります。この小さな記事How To Include Custom Library Into Maven Local Repository?にチェックを入れてください。

この方法では、プロジェクトに必要なサードパーティ製のすべてのjarファイルを格納できます。また、jarをローカルリポジトリにインポートするシェル/バッチスクリプトも格納できます。開発者は、(プロジェクトからの)特定の場所からローカルリポジトリを使用するようにmaven設定を変更するのではなく、依存関係をローカルリポジトリにインポートするスクリプトを実行するだけです。

関連する問題