2013-06-07 20 views
14

私は複雑なMavenプロジェクトを持っています。親プロジェクトの親フォルダはpom.xmlで、サブプロジェクトのサブフォルダはpom.xmlです。mavenプロジェクトをeclipseに正しくインポートするにはどうすればいいですか?

私は、SVNリポジトリ 'Mavenプロジェクト'から親フォルダをチェックアウトすると、ワークスペース内に別々のプロジェクトとして正しく表示されます。

しかし、私はプロジェクトの他のブランチから親フォルダをチェックアウトしました。この親フォルダを同じ方法で現在のワークスペースに追加します。だから私はちょうどImport > Maven projectを選択し、svnからの正当なチェックアウトと同じダイアログを得る、Eclipseは適切な階層を持つすべてのpomファイルを見つけて、私に親プロジェクトに別の名前を与えるように依頼する、同じ名前alredyが存在する(プロジェクトのtruncバージョン)ほかの名前。しかし、インポート後、私はeclipseでmavenプロジェクトとしてのみ親フォルダを取得し、他のすべてのサブプロジェクトはサブプロジェクトとして親プロジェクトの下に単純に配置されます。

このようなプロジェクトのインポート方法を教えてください。私はすべてのサブプロジェクトをmavenプロジェクトとして作成したいだけです。

+0

私はこのようなプロジェクトを新しいワークスペースにのみ追加して管理していましたが、他の方法ではうまくいきませんでした。 – sphinks

+0

私はこの戦いで勝つのを止め、すべての支店に別々の作業スペースを使い始める。 – sphinks

答えて

0

ワークスペースに問題があると思われます。ワークスペース自体でプロジェクトをチェックアウトしている可能性があります(それについてはご容赦ください)。 できることは、他のドライブでプロジェクトをチェックアウトし、親プロジェクトをインポートすることです。すべてのPOMが階層的に整列しているのを見て、親プロジェクトの名前を入力する必要はありません。

+0

いいえ、同じ名前のプロジェクトのためにプロジェクト名を入力していますが、既にワークスペースにあります。フォルダの場所を変更すると、同じ名前のプロジェクトをもう1つ作成することはできません。 – sphinks

+0

私が言ったことは、プロジェクトがすでにワークスペースに存在しているためにプロンプ​​トが表示されていることです。新しいワークスペースを作成してから、チェックアウトしたプロジェクトをインポートしてみてください(他のディレクトリにあるかもしれません) –

+0

他のブランチからワークスペースを分離するチェックアウトバージョンですか? – sphinks

9

Eclipseでは、1つのプロジェクトを複数回インポートすることはできません。ケースでは、トランクとブランチからインポートします。 This articleは、カスタムMavenプロファイルでこの制限を回避する方法を示しています。基本的には、手順は次のとおりです。

MVNの日食:

  1. は、Mavenのプロジェクト設定を生成させるEclipseにプロジェクトをインポートする前に、あなたの親pom.xml

    <profiles> 
        <!-- Specific profile used to append a string to project name --> 
        <profile> 
        <id>append-to-project-name</id> 
        <activation> 
         <property> 
         <name>append.to.project.name</name> 
         </property> 
        </activation> 
        <build> 
         <plugins> 
         <plugin> 
          <artifactId>maven-eclipse-plugin</artifactId> 
          <configuration> 
          <projectNameTemplate> 
           [artifactId]-${append.to.project.name} 
          </projectNameTemplate> 
          </configuration> 
         </plugin> 
         </plugins> 
        </build> 
        </profile> 
    </profiles> 
    
  2. に次のプロファイルを追加します。 eclipse -Dappend.to.project.name = [あなたのブランチ名]

  3. 既存のプロとしてEclipseにプロジェクトをインポートするject(Mavenプロジェクトではありません)。

これは名前の問題を解決するはずです。子プロジェクトのインポート用として


:私はまた、子サブプロジェクトを持つ親のMavenプロジェクトを持っているとEcpliseためm2eプラグインを使用します。 Import > Existing Maven Projectを選択すると、親と子の両方をチェックすることができます。インポート後、私は親プロジェクトとそれぞれの子を独立してインポートします。スクリーン:

project import imported projects

だから私は、上記の命名溶液と合わせ、これはあなたの問題を解決する必要があります願っています。

+0

子プロジェクトのインポートについて。これはMavenプロジェクトとしてのチェックアウトで説明したように完璧に機能しますが、Eclipseで同じダイアログウィンドウを使用して既存のプロジェクトをインポートすると、正常に動作しませんでした。 – sphinks

+0

@sphinksそして名前を変えてトリックを試してみましたか? – Mifeet

+0

はい、私は期待どおりに動かなかった。 – sphinks

0

Mavenプロジェクトとしてチェックアウトしたプロジェクトを削除し、親プロジェクトを単に(Mavenプロジェクトとしてではなく)チェックアウトし、子モジュールを既存のMavenプロジェクトとしてインポートします。親POMに子モジュールとしてリストされていることを確認してください。SCMから複雑な(または実際には任意)のMavenプロジェクトをインポートするための

+0

すべての子モジュールを1つずつインポートするのは良い解決策ではありません。約30のモジュールがあります。親プロジェクトをインポートするときに自動モードでインポートする必要がある場合、手動で行う必要があるのはなぜですか?/ – sphinks

+0

子モジュールをインポートすることによって、既存のMavenプロジェクトのインポートダイアログで親プロジェクトのディレクトリを参照し、インポートするPOMをすべて選択します。 。 – thSoft

+0

それは私がやっていることをexatcly。スキャン親フォルダをインポートするには、pomをすべて選択します。 – sphinks

3

(それはSVN、Gitのまたは任意の他のSCMも)私は、次のアプローチを使用します。

ファイル - > Import->からのMavenプロジェクトをチェックアウトSCM

これは、IDE固有のファイルがSCMにコミットされていない場合に最適です。ネストされたプロジェクトをすべてインポートするか、インポートするプロジェクトを選択することができます。作成されるプロジェクトの性質を決定するためのMaven設定に完全に依存しているため、POMファイルが正しいと仮定すると、すべて正しく設定されています。

m2eclipseが選択したSCMにアクセスできるように、アドオンをインストールする必要があります。

+0

私はちょうどsvnからチェックアウトではなく、すでに存在するプロジェクトをimporteする必要があると書いています。 svnの異なるブレイクから、自動的にワークスペースフォルダ(他のサブフォルダ内の1つのブランチ)のハードドライブ上に混乱が生まれます。だから私はちょうどそれ自身のフォルダ内のすべてのブランチをチェックアウトし、eclipseでそれをインポートします。 – sphinks

+0

この機能は、ブランチから簡単にチェックアウトできます。これは、SCMとの関係を維持しながら、ネストされたMavenプロジェクトをEclipseにインポートすることができた唯一の方法です。 – Kris

関連する問題