2016-12-27 64 views
0

我在這個問題上苦苦掙扎了一段時間,我在IntelliJ中有一個Maven項目,帶有2個maven模塊。在包中找不到其他Maven模塊的類 - IntelliJ

當我在我的第二個模塊的java文件夾(源根),當我創建一個類,我可以參考我的其他項目的類。但是當我在java文件夾中的包中時,我不再能夠使用其他項目的類。

由於提前,

鏈接到圖片: http://imgur.com/a/6wyYM

從父項目我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

<modelVersion>4.0.0</modelVersion> 
<packaging>pom</packaging> 

<groupId>com.ucll.da</groupId> 
<artifactId>project2</artifactId> 
<packaging>pom</packaging> 
<version>1.0-SNAPSHOT</version> 

<modules> 
    <module>domain</module> 
    <module>webApp</module> 
    <module>rest</module> 
</modules> 

</project> 

從域和休息的POM文件基本相同:

<?xml version="1.0" encoding="UTF-8"?> 
<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 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

<parent> 
    <artifactId>project2</artifactId> 
    <groupId>com.ucll.da</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<modelVersion>4.0.0</modelVersion> 
<packaging>jar</packaging> 
<artifactId>domain</artifactId> 

</project> 
+0

圖片顯示了模塊中不同包中的兩個類。你的意思是包裝而不是模塊? – swiedsw

+0

不,我有一個其他的Maven模塊(稱爲「域」),它具有ObservationService類。在我的'rest'模塊中,我只能在java文件夾中的類中使用ObservationService,而不能在java文件夾下的包中使用。 – denelias

+0

我建議您使用pom.xml和包結構中的相關依賴關係片斷更新您的問題。 – swiedsw

回答

0

我發現我的溶膠但我不知道它爲什麼現在起作用。

第一個Maven模塊(域)中的我的java文件不在包內,就在映射Java內部。當我在這個Java映射中創建一個新包並將所有的java文件移動到那裏時,我可以在其他Maven模塊中使用這些類。

+0

當您將類放置爲'/ src/main/java'的子元素時,它們將成爲未命名包的一部分。不鼓勵使用未命名的軟件包,請參閱此問題http://stackoverflow.com/q/7849421/6850448。您不能從命名包中導入未命名包中的類。 – swiedsw

+0

謝謝你的解釋:) – denelias