2017-08-18 16 views
-1

ここでは非常に基本的なMavenの知識が欠けているはずです。私は(2つの)mavenプロジェクトと共有ライブラリを持っています。このライブラリは、独自のライフサイクルを持つ独立したMavenプロジェクトである必要があります。他のローカルプロジェクトのローカルMavenスナップショットを使用する方法

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>nl.whatever.com</groupid> 
     <artifactId>my_shared_library</artifactId> 
     <version>1.0-SNAPSHOT</groupid> 
     </dependency> 

     ... 
    </dependencies> 
</dependencyManagement> 

をしかし、Mavenは、私のREPROで探しての代わりに、私の地元のビルドを見つけようとして続けて:私は使用して自分のプロジェクトにライブラリをインポートしようとしています。そして最悪の場合、それは瓶を探し続けます。私が取得:

Could not resolve dependencies for project my.project:ejb:1.0-SNAPSHOT: Could not find artifact nl.whatever.com:my_shared_library:jar:1.0-SNAPSHOT

私の新人のミスは何ですか?はい、私は私の図書館プロジェクトをきれいにインストールしました。

編集:

マイ.m2ディレクトリが

/ws/repro, which contains: 
/ws/repro/nl/whatever/com/my_shared_library/1.0-SNAPSHOT/ 
    my_shared_project-1.0-SNAPSHOT.jar.lastUpdate 
    my_shared_project-1.0-SNAPSHOT.pom 

と、いくつかのプロパティファイルに私の地元のREPROをリダイレクトする設定ファイルを持っています。

edit2: 私はそれが重複しているとは思わない。質問を投稿する前にリンクされている質問を見ました。ここには非Mavenプロジェクトや外部Jarはありません。

+0

ローカルの '.m2'フォルダにアーティファクトjarが正しい場所にあることを確認しましたか? – Strelok

+0

あなたはインストールを実行したと言っていますが、あなたの依存関係で定義した情報で共有ライブラリのpomファイルを構成していますか? – pabrantes

+0

私はこの質問が記載された質問と重複しているとは思わない。これは、外部ファイルのインストールではなく、他のプロジェクトで使用できるようにライブラリを構築することです。 –

答えて

0

ローカルリポジトリは通常、ユーザリポジトリの下の.m2/repositoryにあります。ライブラリプロジェクトでclean installを実行する場合は、このリポジトリにインストールする必要があります(nl/whatever/com/my_shared_library/...)。その後、同じコンピュータ上の他のすべてのMavenプロジェクトから使用することができます。

また、<packaging>が正しいこと、すなわち、パッケージングが作成する成果物と一致する必要があることが重要です。パッケージ化がpomの場合は、pom(親のpomまたはbomのように)だけを作成します。パッケージタグをそのまま残すと、パッケージjarを使用することを意味します。

+0

なぜ私はdownvotedされましたか? –

+0

.lastupdateファイルを削除するのはなぜですか?そして、それが私に明らかに必要なjarファイルをどのように提供していますか? – Arne

+0

最後に更新されたファイルは、JARが存在しないことをMavenに伝えるため、JARを使用できないようにします。これは、存在するはずの瓶がないという一般的な理由です。あなたのローカルリポジトリを調べましたか?あなたは "クリーンインストール"でビルドしたライブラリを含んでいますか? –

-1

repositoriesというタグでpom.xmlを更新してみます。

Maven repositoriesは、さまざまな種類のビルド成果物および依存関係を保持する場所です。その値を持つ

サンプルMavenのリモートリポジトリタグは次のとおりです。

<repositories> 
    <repository> 
    <id>central</id> 
    <name>Maven Repository</name> 
    <url>http://repo1.maven.org/maven2</url> 
    </repository> 
</repositories> 

あなたがguideに従うと、同様settings.xml内のプロファイルを利用することができ、複数のリポジトリを設定します。


階層に従うか、特定のバージョンのライブラリを使用しない限り、注意してください。 <dependencyManagement>の代わりに<dependencies>を使用する必要があります。differences between dependencymanagement and dependencies in mavenをご覧ください。

+0

会員の投票が何らかの理由で下降することが予想されます。それ以外はどのように改善すると思いますか? – nullpointer

+0

改善しなければならない人には、時にはそれが有権者です。 – duffymo

関連する問題