2014-12-03 64 views
1

我有兩個子模塊(module1module2「去定義」在一個多模塊Maven項目與模塊的依賴關係的IntelliJ

module2父模塊行家依賴於module1

module2我參考的是module1

當我嘗試跳到此類的定義時,IntelliJ會在我的Maven存儲庫中打開.class文件。我期望它跳轉到module1的java類。我怎樣才能讓IntelliJ跳轉這個類文件?

我跑的IntelliJ IDEA終極14.0.1

parent 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"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>test</groupId> 
    <artifactId>test</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <modules> 
     <module>module2</module> 
     <module>module1</module> 
    </modules> 
</project> 

module1 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>test</artifactId> 
     <groupId>test</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>module1</artifactId> 
</project> 

module2 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>test</artifactId> 
     <groupId>test</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>module2</artifactId> 

    <dependencies> 
     <dependency> 
      <groupId>test</groupId> 
      <artifactId>module1</artifactId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

請向我們展示您的pom文件全部三個 – 2014-12-03 20:22:10

+0

我已將pom文件添加到問題 – Michiel 2014-12-04 10:00:54

+0

好吧,您的poms看起來是正確的,所以Idea應該能夠使用它並讓您在模塊中的類之間直接導航。你是如何打開這個項目的?開始關閉所有項目的想法,配置maven,然後使用file/open導入主POM是一個好主意。然後,轉到模塊2中引用模塊1中的類的類,並嘗試導航(按Ctrl單擊)類名。 – 2014-12-04 16:07:10

回答

-1

你有兩個選擇:

路#1:

構建module1與來源。通過這種方式可以確保您始終使用一致的源代碼來使用Java類。

爲了能夠建立與源內容添加到Maven插件:

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.1.2</version> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>jar-no-fork</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

路#2:

通過Project structure>Modules>Dependencies>+>3. Module dependency

那麼添加您的module1module2 ,它不會像第一種方式一樣穩定,但如果你使用的是Maven構建,它的安裝速度會快得多。如果你正在使用intellij構思,你可以把這個依賴關係標記爲export,將它包含在你的module1輸出目錄中。

+2

這些都不是是必要的,甚至是一個好主意。如果你的Maven依賴關係是正確的,並且你已經從主Pom導入項目,那麼導航應該「正常」工作。 – 2014-12-03 20:22:56

+0

我同意工程師Dollery。我已經試過#2之前的方式,只要你重新導入你的Maven項目,你必須重新設置依賴關係。方式#1只會把我帶到我的maven倉庫中的來源,而不是我的項目中的來源。 – Michiel 2014-12-04 10:20:38