1

Eclipse で最初の階層型マルチモジュール プロジェクトを作成しています。

 /project
    pom.xml
      (...)
      <groupId>a.b.c</groupId>
      <artifactId>myProject</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
      <modules>
        <module>x</module>
        <module>y</module>
      </modules>
    /x
      pom.xml
        (...)
        <parent>
          <artifactId>myProject</artifactId>
          <groupId>a.b.c</groupId>
          <version>1.0-SNAPSHOT</version>
        </parent>    
      /src
      .project
    /y
      pom.xml
        (...)
        <parent>
          <artifactId>myProject</artifactId>
          <groupId>a.b.c</groupId>
          <version>1.0-SNAPSHOT</version>
        </parent>    
      /src
      .project

理想的には、Eclipse ワークスペースに 3 つのフォルダーを表示したいと考えています。

  /project
    pom.xml
  /x
    pom.xml
    src
    .project
  /y
    pom.xml
    src
    .project
  • x と y は、プロジェクト フォルダーで親の pom.xml を見つけます。Maven プロジェクトとして独立して作業することができます。

  • プロジェクトには親 pom.xml のみが含まれます

少なくとも、このプロジェクトに取り組むことが実際にどのようになるかについての私の直感です。

コードを SVN にコミットしました。「選択したリソースの子でプロジェクトを検索する」オプションを使用して SVN チェックアウトを実行することで、その構造に近づくことができます (親プロジェクト フォルダーに .project がない場合に限り利用可能です)。これにより、ワークスペースにプロジェクト x と y が作成されますが、親 pom.xml がないためにコンパイル エラーが発生します。親 pom.xml を単独でワークスペースに配置することでこれらのエラーを取り除くことができますが、それはきれいな解決策ではないようです。

私の問題の解決策の 1 つは、構造をいくつか平坦化し、x と y と同じレベルに「親」フォルダーを作成し、そこに親の pom.xml と .project ファイルを作成することだと思いますが、奇妙に思えますEclipseを幸せにするためだけに、親を子供と同じレベルに置くこと。私がオンラインで見つけた答えに最も近いのはhttp://warpedjavaguy.wordpress.com/2011/08/08/how-i-defeated-the-maven-release-plugin-in-a-flat-structured-multi- module-project/、同様の方法で問題にアプローチしているようです。

私が見逃しているより良いアプローチはありますか?

PS: 私は m2e を持っています。

4

1 に答える 1

0

ここで自分の質問に答えていると思います。

  • プロジェクトをEclipseの外でチェックアウトしました。
  • 次に、Mavenプロジェクトとしてインポートしました

つまり、ワークスペースに 4 つのフォルダー (親用に 1 つ、各子用に 3 つ) があります。どういうわけか、以前のバージョンの Eclipse では、これを 1 つのステップ (つまり、チェックアウトとインポート) で行うオプションがあったことを思い出しました。「Maven プロジェクトとしてチェックアウト」と呼ばれていて、Juno とともに姿を消したようです。または、正しいプラグインが不足している可能性があります (m2e と Subversive がインストールされています。別の svn プラグインが subversive の代わりにそれを実行している可能性があります)。

于 2013-01-08T20:08:02.597 に答える