2016-10-13 80 views
3

我在使用pom-packaging maven項目作爲依賴關係在另一個項目中進行諮詢。我嘗試閱讀maven的文檔和在線搜索,但我找到了一些解決方案。使用pom-packaging maven項目作爲依賴關係

聚甲醛包裝項目由多個子模塊這是罐子包裝,類似的:

<project ...> 
    <groupId>the.pom.project</groupId> 
    <artifactId>pom-project</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 

    <modules> 
      <module>a-pom-module</module> 
      <module>b-pom-module</module> 
      <module>c-pom-module</module> 
      <module>d-pom-module</module> 
      <module>e-pom-module</module> 
      <module>f-pom-module</module> 
    </modules> 
</project> 

而其他項目依賴於聚甲醛項目的子模塊罐子。我寫這樣的:

<project ...> 
    <groupId>the.another.project</groupId> 
    <artifactId>another-project</artifactId> 
    <version>1.0</version> 
    <packaging>jar</packaging> 

    <dependencyManagement> 
      <dependencies> 
        <dependency> 
          <groupId>the.pom.project</groupId> 
          <artifactId>pom-project</artifactId> 
          <version>1.0</version> 
          <type>pom</type> 
        </dependency> 
      </dependencies> 
    </dependencyManagement> 
</project> 

我試圖POM項目添加爲依賴關係,旨在給所有子模塊的jar添加到另一個項目的類路徑,但它似乎不是爲我工作。

我不希望手動添加所有的子模塊作爲依賴。

回答

4

您的導入pom的方式不起作用。

您需要創建新的POM,其聚合您想要的依賴關係,然後添加依賴對總POM項目中的

創建聚合POM如下

<groupId>the.pom.project</groupId> 
    <artifactId>aggregate-pom</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 

    <dependencies> 
     <dependency> 
      <groupId>the.pom.project</groupId> 
      <artifactId>a-pom-module</artifactId> 
      <version>1.0</version> 
     </dependency> 
     . 
     . 
     . 
    <dependencies> 

然後使用以下依賴於你的項目

<dependency> 
    <groupId>the.pom.project</groupId> 
    <artifactId>aggregate-pom</artifactId> 
    <version>1.0</version> 
    <type>pom</type> 
</dependency> 
+0

謝謝,這個工程。雖然我認爲應該有一些插件在部署時自動生成這樣的聚合pom。 –

+0

是的,應該有一個用於生成聚合體的標誌 – ravthiru