親になるpom で定義したMavenプロジェクトに子のMaven モジュールを作成するのは、
通常の方法では、親になるMavenプロジェクトを選択して右クリック
[Maven]→「新規 Mavenモジュール・プロジェクト」を選択して作成していく。
既にある Mavenプロジェクトを子に、親を指定する場合は、、
子のプロジェクト(例:child プロジェクト)の pom.xml に、親プロジェクト名=sample を
追記する
(child プロジェクト 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>child</artifactId> <version>0.0.1-SNAPSHOT</version> </project>
(child プロジェクト 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>child</artifactId> </project>
parent で指定する。
そして、親 sampleプロジェクトは、modules に 子プロジェクトを追記する。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>child</module> </modules> </project>
これだけでは、ダメだ!
child プロジェクトを sample フォルダ配下にリファクタリングで移動するか、
Windowsエクスプローラーで実際に物理的に移動する。
それでもこれだけでは、子のchild プロジェクトとして認識されずダメだ!
以下のように、移動した子プロジェクトのフォルダを選択して、
Import As Project という操作をしなくてはならない!
これがなかなかわからなくてハマった。。。