Maven: повторно использовать файл POM в каждом проекте - PullRequest
3 голосов
/ 10 мая 2010

Моя цель на самом деле довольно проста, но, поскольку есть несколько (и, казалось бы, сложных способов сделать это), мне интересно, что мне нужно сделать ... Итак, у меня есть определенные библиотеки времени выполнения (в частности, библиотеки ADF), которые необходимо добавляется к каждому проекту. Этот родительский pom-файл будет содержать JAR-зависимости. Как я могу использовать этот pom-файл из дочернего pom-файла?

Ответы [ 2 ]

8 голосов
/ 10 мая 2010

Я не думаю, что использование наследования является хорошим решением здесь. Даже если в каждом проекте используются артефакты ADF, вы не хотите, чтобы все pom-ы получали эти зависимости, поэтому объявление их в pom-корпоративном родительском файле на самом деле не вариант.

Итак, вместо этого я рекомендую создать проект с pom упаковкой, чтобы сгруппировать зависимости ADF:

<project>
  <groupId>com.mycompany</groupId>
  <artifactId>adf-deps</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>
  <dependencies>
    <dependency>
      <groupId>some.groupId</groupId>
      <artifactId>adf-artifact-1</artifactId>
      <version>${jdev.version}</version>
    </dependency>
    ...
    <dependency>
      <groupId>some.groupId</groupId>
      <artifactId>adf-artifact-n</artifactId>
      <version>${jdev.version}</version>
    </dependency>
  </dependencies>
  <properties>
    <jdev.version>10.1.3</jdev.version>
  </properties>
</project>

Затем установите / разверните этот проект и объявите его как зависимость в любом проекте, для которого требуются артефакты ADF:

<project>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>adf-deps</artifactId>
      <version>1.0</version>
      <type>pom</type>
    </dependency>
  </dependencies>
</project>
1 голос
/ 10 мая 2010

Если дочерний файл POM на самом деле является дочерним (то есть объявляет своего родителя), он наследует зависимости, и вам ничего не остается делать.

...