Maven - добавить зависимость от источника артефакта

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

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

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам