Maven - добавить зависимость от источника артефакта - PullRequest
11 голосов
/ 17 июня 2009

У меня есть два модуля maven, один из которых заканчивается как банка, а другой - война, которая зависит от этой банки.

Я хочу, чтобы модуль jar упаковал свой исходный код вместе со скомпилированными классами в jar, чтобы второй модуль мог получить к нему доступ. Я пытался использовать maven-source-plugin, но я не уверен, как добавить зависимость от вывода этого. Кажется, что зависимость по умолчанию идет к скомпилированному jar, а не к jar исходного кода (оканчивающемуся на -source.jar), который создает maven-source-plugin.

Как добавить «-source.jar» в качестве зависимости, сохраняя при этом зависимость от скомпилированных источников?

Ответы [ 2 ]

20 голосов
/ 18 июня 2009

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

(Согласно комментариям, вам на самом деле не нужен профиль. Вы можете просто использовать плагин sources, который развернет источники и сделает их доступными через классификатор источников)

Теоретически, вы будете использовать 2-й профиль, чтобы прикрепить источники к проекту. Это создает вторую запись в вашем хранилище для источников, использующих этот классификатор. После установки / развертывания источников в своем хранилище вы сможете включать источники в качестве зависимости, используя тег классификатора для зависимости, чтобы указать источники напрямую.

Так что у вас будет что-то подобное в вашем веб-приложении POM:

<dependencies>
  <dependency>
    <groupId>myGroup</groupId>
    <artifactId>myJar</artifactId>
    <version>4.0</version>
    <type>jar</type>
  </dependency>
  <dependency>
    <groupId>myGroup</groupId>
    <artifactId>myJar</artifactId>
    <version>4.0</version>
    <type>jar</type>
    <classifier>sources</classifier>
  </dependency>
</dependencies>
1 голос
/ 17 июня 2009

Вы пытались добавить каталог src в качестве каталога ресурсов в разделе сборки? Это должно скопировать источник в банку при сборке.

...