所以基本上,我有一個多模塊項目,如無法在一個多模塊項目找到神器
- 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>
而且pom.xml
Module1的是:
<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
Module2取決於Module1如下:
<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
以同樣的方式,我正在構建另一個項目ProjectB,它將具有Module3。在單詞數pom.xml
:
<dependency>
<groupId>com.companyName.ProjectA</groupId>
<artifactId>Module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
但是呢,我不能在我的.java文件導入,因爲com.companyName.ProjectA不可用,的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>
從父項目(ProjectA
)使得該項目再次可建。但是,我需要它(出於顯而易見的原因)是否有解決方法?謝謝!
您是否在建立'Module1'後確認存在'〜/ .m2/repository'? – nullpointer
@nullpointer是的,我可以將它展示爲另一個項目的依賴項,比如'ProjectB',但是我不能將它導入到'ProjectB'的'Module3'中的.java文件中。 –
你是什麼意思*顯示爲依賴*?這聽起來像,你總是可以寫一些代碼,但除非你編譯它,否則你不會知道它有什麼問題。 – nullpointer