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