2016-10-13 2 views
3

Я консультируюсь с вопросом о использовании проекта maf pom-as в зависимости от другого проекта. Я пробовал читать документацию maven и искать в Интернете, но я нашел несколько решений.Использовать pom-packaging maven project как зависимость

П-упаковочный проект состоит из нескольких подмодулей, которые банка-упаковка, аналогичный:

<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 в зависимости, стремясь добавить все подмодуль банки в пути к классам другого проекта, но это, кажется, не работает для меня.

Я не надеюсь добавить все подмодули в качестве зависимостей вручную.

ответ

4

Ваш способ импортировать поместья не работает.

Вам нужно создать новый 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

Спасибо, это работает. Хотя я думаю, что должен быть некоторый плагин для автоматического создания такого агрегатного помпа при развертывании. –

+0

Да, должно быть, должен был быть флаг для создания агрегатной помпы – ravthiru

Смежные вопросы