Плагин maven shade создает файл с именем dependency-reduced-pom.xml, а также artifactname-shaded.jar и помещает их в базовый каталог.
Это ошибка? Должно быть в целевом каталоге. Любое обходное решение?
Плагин maven shade создает файл с именем dependency-reduced-pom.xml, а также artifactname-shaded.jar и помещает их в базовый каталог.
Это ошибка? Должно быть в целевом каталоге. Любое обходное решение?
Вы можете избежать его создания, установив createDependencyReducedPom
в false.
например.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
....
....
</plugin>
Подробнее см. подробнее от apache
Основываясь на ответе bmargulies 'и его комментариях в ответ Xv., я решил настроить POM с уменьшением зависимости, который будет выводиться на target/
, который уже игнорируется в моей VCS.
Чтобы сделать это, я просто добавил элемент dependencyReducedPomLocation
к элементу configuration
плагина, то есть
<configuration>
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
(...)
</configuration>
См. https://issues.apache.org/jira/browse/MSHADE-121, а также https://issues.apache.org/jira/browse/MSHADE-124.
Есть возможность переместить d-r-p в другое место, но вам могут не понравиться последствия.
Вы ошибаетесь в том, что в банке с затенением она всегда попадает в цель/если вы не переместили ее в другое место.
Вы можете использовать старую версию плагина. Версия 1.7 плагина maven-shade записывает в /target.
Начиная с версии 1.7.1, pom.xml, зависящий от зависимостей, записывается на основе. См. Вопрос MSHADE-124 по некоторым причинам, почему это было сделано и каковы последствия. Если вы попробуете установить dependencyReducedPomLocation, вы, скорее всего, столкнетесь с проблемами создания сайта - открытая проблема MSHADE-145.
документация на http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html неверна, когда она говорит:
createDependencyReducedPom boolean - указать, следует ли генерировать упрощенный POM для затененного артефакта. Если установлено значение true, зависимости которые были включены в uber JAR, будут удалены из раздел генерируемого ПОМ. Сокращенный POM будет named dependency-reduced-pom.xml и сохраняется в том же каталоге как затененный артефакт. Если вы не укажете dependencyReducedPomLocation, плагин создаст временный файл named dependency-reduced-pom.xml в проекте basedir. Значение по умолчанию is: true.
зависимый-reduced-pom.xml не сохраняется в том же каталоге, что и затененный артефакт (целевой каталог)... он фактически сгенерирован в базовом каталоге, а не цели