Плагин Maven Shade: разверните оба артефакта, но сделайте затененный одним из основных

Я использую плагин maven shadow на этапе package, и я хочу, чтобы

  • заштрихованная банка становится основной банкой my-app.jar

  • исходный jar не переименовывается в original-my-app.jar, но к нему применяется пользовательский классификатор, в частности my-app:no-deps.jar

  • наконец, я хочу, чтобы обе банки были развернуты с помощью mvn deploy

Моя текущая настройка имеет <shadedArtifactAttached>false</shadedArtifactAttached>, что заставляет затененную банку переименовываться в основную банку проекта и развертываться (что нормально), но я не получаю исходную банку для развертывания и, кроме того, я не знаю, как ее переименовать


person alexlipa    schedule 14.03.2019    source источник


Ответы (1)


Вы решили использовать <shadedArtifactAttached>false</shadedArtifactAttached>, что означает, что затененный артефакт станет основным артефактом.

Если вы хотите иметь оба артефакта, вы должны использовать <shadedArtifactAttached>true</shadedArtifactAttached>, что позволит добавить затененный артефакт в качестве артефакта классификатора. Это приведет к появлению двух артефактов, один из которых является основным артефактом с идентификатором groupId/artifactId, а второй артефактом, к которому можно обратиться с помощью классификатора. По умолчанию это shaded, это означает наличие groupId/artifactId/classifier в вашем pom для использования этого артефакта вместо основного артефакта.

person khmarbaise    schedule 14.03.2019
comment
Вы имеете в виду, что поверх моего pom я должен добавить классификатор shaded? - person alexlipa; 18.03.2019
comment
Я не хочу, чтобы клиенты обращались к моей библиотеке как library:shaded, но я хочу, чтобы затененная банка стала основной - person alexlipa; 18.03.2019