2016-07-27 12 views
-1

私はmavenプロジェクト(Proj1)を持っています。私のJavaクラスでは、別のmaven proj(proj2)のメソッドを呼び出す必要があります。他のプロジェクトへのJavaプロジェクト依存性

私の現在のプロジェクト(proj1)ではそのメソッドが利用できないため、さまざまなコンパイル時エラーが発生します。 それを解決するために、私はメソッドコード全体を取り、そのメソッドを現在のJavaクラスに貼り付けました。 これで私のプロジェクトでこのメソッドが利用可能になりました。しかし、そのメソッドは再び私の現在のプロジェクトでは利用できない他のクラスのコードをほとんど呼びません。 もう一度、他のクラスのすべての依存コードをコピーして貼り付ける必要がありました。 これは繰り返し起こり、循環的な依存関係が存在するので、このエラーを解決する方法がわかりました。 私はこれを解決するためにいくつかのオプションがあります。 proj2からのすべてのクラスの

  1. テイク源は、その外のjarファイルを作成し、 これは、いくつかのエラーを解決したが、その後、まだエラーを与えるサードパーティのjarファイルからいくつかのクラスがある私のクラスパスにそのjarファイルが含まれています。
  2. 私はproj2用のpom.xmlを持つ2番目のオプションを計画しています。 私はそこからビルドを作成します。必要なすべてのjarファイルがリポジトリからダウンロードされるようにします。 このprojの出力は、proj2.jarという名前のjarです。

今、私の質問は、私は私のコードでのみproj2.jarが含まれている場合、それはすべての依存関係を解決します

  1. のですか?
  2. またはproj2のクラスパスにすべてのjarを手動で追加する必要があります
  3. またはproj2のsrcとproj2.jarのjarsを追加する必要がありますか?
  4. ORには、上記のオプションよりもこれを行うための方法がありますか?
+1

Maven Dependency Mechanismはちょうどあなたのpom.xmlでの依存関係として追加し、Mavenはそれに対処します。それは基本的にメイヴンのためのものです。 – Stultuske

+0

お返事ありがとうございました。ですから、基本的にはproject2をビルドするだけで、proj2.jarが作成され、そのjarファイルがproj1クラスパスに追加されます。私は正しいですか? – Sachin

+0

番号。あなたのプロジェクト2をあなたのリポジトリに持ち、他のプロジェクトのpom.xmlにあなたのプロジェクトに依存していることを伝えるだけです2。 ビルド時には、プロジェクト2をリポジトリから取得し、ローカルリポジトリに追加して使用できるようにします。 – Stultuske

答えて

3

すべてのプロジェクトでmavenを使用します。 (。あなたはあなたのためのMavenサポートを追加するためにIDEを求めることができますので、com.sachinがプレースホルダである私はあなたのパッケージ構造を知らない)ヘッダと次のようにプロジェクトのルートにのpom.xmlを追加します。

<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>com.sachin</groupId> 
    <artifactId>Proj2</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <name>My Proj2</name> 

に同じヘッダを追加します。 Proj1Proj1からProj2に依存関係を追加します。maven buildProj2

<dependency> 
    <groupId>com.sachin</groupId> 
    <artifactId>Proj2</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

Proj1にjarファイルの依存関係として追加されます。

私のコードにproj2.jarだけを含めると、 の依存関係はすべて解決されますか?

あなたproj2.jarpom.xmlproj2.jarその依存関係で使用されている場合 - 彼らはMavenを使用してproj1の建物の間に取得されます、その後はいを。

公式ドキュメントを約

+0

ちょっとRudziankoŭあなたの返信をありがとう。あなたが正しいです。再度、感謝します。 – Sachin

+0

両方のプロジェクトでmvn buildを実行する必要があります。 pom.xmlが存在するルートディレクトリ。その後、ローカルのMavenリポジトリを確認し、そこにproj2.jarを見つけてください。その後、IDEまたはパス "sys_var"がローカルリポジトリの場所を知っていることを確認してください。 –

+0

こんにちは、あなたの方法を使って依存関係を正常に設定しました。どうもありがとう。しかし、私は質問があります。あなたの方法の違いは " ..."ですか? –

関連する問題