2012-02-06 229 views
0

我有這樣的問題,建立一個Maven項目...如何在maven模塊中設置循環引用?

一個MVN項目父設置是這樣的:

<groupId>com.company.system.ping</groupId> 
<artifactId>system-ping</artifactId> 
<name>system-ping</name>  
<parent> 
    <artifactId>parent_lvl_1</artifactId> 
    <groupId>com.company.system</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

然後我去找父母說的POM,找到這個:

<groupId>com.company.system</groupId> 
<artifactId>parent_lvl_1</artifactId> 
<packaging>pom</packaging> 
<name>_proj_test</name> 
<version>1.0-SNAPSHOT</version> 
<parent> 
    <artifactId>parent_lvl_0</artifactId> 
    <groupId>com.company</groupId> 
    <version>1</version> 
</parent> 

我終於看到了第一個父,看到這一點:

<groupId>com.company</groupId> 
<artifactId>parent_lvl_0</artifactId> 
<packaging>pom</packaging> 
<name>_main</name> 
<version>1</version> 
<description>The whole Projects</description> 

現在我檢查模塊:

<modules> 
    <module>../_proj_test</module> 

    ... 

</modules> 

第一個父模塊引用了一個孩子!所以,當我嘗試

MVN上安裝

'_main' 我得到這個:

[ERROR] The project com.company.system:_proj_test:1.0-SNAPSHOT (C:\...\pom.xml) has 1 error 
[ERROR]  Non-resolvable parent POM: The repository system is offline but the artifact com.company:_main:pom:1 is not available in the local repository. and 'parent.relativePath' points at wrong local POM @ line 4, column 10 -> [Help 2] 
[ERROR] 

我翻譯這:你父母requieres這就需要你回來模塊。如果我註釋掉所有內容模塊我可以正確地安裝所有東西,但這對我來說並不合適!我如何構建父級而不構建模塊依賴關係?

謝謝!

回答

1

配置對我來說看起來很奇怪,主要是因爲'_main'的孩子'_proj_test'位於同一級別。

我該如何構建父類而不構建模塊依賴關係?

嘗試mvn -N安裝

至於項目結構,我會做它以這樣一種方式:

1)$用 '主程序' 的pom.xml BASEDIR它應該包含這個

<modules> 
    <module>_proj_test</module> 
</modules> 

2)$ BASEDIR/_proj_test與 '_proj_test' 的pom.xml它應該包含這個

<modules> 
    <module>system-ping</module> 
</modules> 

3)$ BASEDIR/_proj_test /系統平與 '系統平' 的pom.xml(使用正確的的groupId父 - com.company.system的代替com.company

+0

我繼承別人的項目,我相信他想要一個「平」的層次,但這個工作不正常使用Maven。我發現這個:http://www.sonatype.com/books/mvnex-book/reference/multimodule-sect-intro.html。 – 2012-02-06 19:34:28