web-dev-qa-db-ja.com

どのようにMavenプロジェクトをEclipseに適切にインポートしますか?

私は複雑なMavenプロジェクトを持っています。これには、親pom.xmlの親フォルダーと、サブプロジェクト用のいくつかのサブフォルダーがあり、それぞれに独自のpom.xmlがあります。

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

しかし今、私はプロジェクトの他のブランチから親フォルダをチェックアウトしました。この親フォルダーを同じ方法で現在のワークスペースに追加したいと思います。したがって、Import > Maven projectを選択し、svnからのチェックアウトと同じダイアログを取得します。Eclipseは、適切な階層を持つすべてのpomファイルを見つけて、親プロジェクトに他の名前を付けます。同じ名前がすでに存在します(プロジェクトの切り捨てバージョン) 、私はそれに別の名前を付けます。しかし、インポート後、Eclipseでmavenプロジェクトとして親フォルダーのみを取得すると、他のすべてのサブプロジェクトは、サブフォルダーとして親プロジェクトの下に単純に配置されます。

では、どうすればこのようなプロジェクトプロパティをインポートできますか?すべてのサブプロジェクトをMavenプロジェクトとして作成したいだけです。

14
sphinks

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

  1. 次のプロファイルを親に追加します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にインポートする前に、mavenにプロジェクト設定を生成させます。

    mvn Eclipse:eclipse -Dappend.to.project.name = [your-branch-name]

  3. プロジェクトを(Mavenプロジェクトではなく)既存のプロジェクトとしてEclipseにインポートします。

これにより、命名の問題が解決されます。


子プロジェクトのインポートについて:私は子サブプロジェクトを持つ親mavenプロジェクトもあり、Ecpliseに m2e プラグインを使用します。 Import > Existing Maven Project、親と子の両方をチェックできます。インポート後、親プロジェクトと各子の両方を個別にインポートしました。スクリーン:

project importimported projects

したがって、これを上記のネーミングソリューションと組み合わせると、問題が解決することを願っています。

9
Mifeet

SCM(SVN、Git、またはその他のSCM)から複雑な(または実際に任意の)Mavenプロジェクトをインポートするには、次の方法を使用します。

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

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

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

3
Kris

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

0
thSoft

ワークスペースに問題があるのではないかと思います。ワークスペース自体でプロジェクトをチェックアウトしている可能性があります(そのため、ご容赦ください)。できることは、他のドライブでプロジェクトをチェックアウトしてから、親プロジェクトをインポートすることです。すべてのPOMが階層的に配置されていることが再び表示されます。親プロジェクトの名前を入力するように求められることはなく、これでうまくいきます。

0
roger_that