基本的に、私は次のようなマルチモジュールプロジェクトを持っています
- ProjectA
|- Module1
|- Module2
関連する部分(私は信じています)pom.xml
は次のProjectA
とおりです。
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<modules>
<module>Module1</module>
<module>Module2</module>
</modules>
Module1pom.xml
の場合は次のとおりです。
<parent>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module1</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
また、pom.xml
Module1 に依存する Module2 の は次のとおりです。
<parent>
<groupId>com.companyName</groupId>
<artifactId>ProjectA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>Module2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.companyName</groupId>
<artifactId>Module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
...
</dependencies>
Module1 を問題なくビルドしてインストールできます。そこから Module2 にクラスをインポートできますが、Module2 を次のようにコンパイルすることはできません。Could not find artifact com.companyName:ProjectA:pom:0.0.1-SNAPSHOT
同様に、Module3 を持つ ProjectB という別のプロジェクトを作成しています。Module3 でpom.xml
:
<dependency>
<groupId>com.companyName.ProjectA</groupId>
<artifactId>Module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
しかし、com.companyName.ProjectA が利用できないため、.java ファイルにインポートできません。IntelliJ から警告が表示されます。私は何を間違っていますか?関連するマルチモジュール プロジェクトの質問で、ほぼすべての構成を試しました。ありがとう!
更新: コンソール出力は次のように変更されました。
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/user/workspace/project-name/Module2/src/main/java/com/companyName/ProjectA/Module2/users/UsersDAO.java:[3,39] package com.companyName.ProjectA.Module1 does not exist
[ERROR] /Users/user/workspace/project-name/Module2/src/main/java/com/companyName/ProjectA/Module2/users/UsersDAO.java:[9,6] cannot find symbol...
更新: 興味深いことに、削除:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
from parent project ( ProjectA
) は、プロジェクトを再びビルド可能にします。しかし、私はそれが必要です (明らかな理由から) これに対する回避策はありますか? ありがとう!