Цель: создать исполняемый uber jar с плагином maven shade, который может быть выполнен во время компиляции mvn другого pom.mvn process-resources не вытаскивает uber jar, созданный с помощью теневого плагина
репрографии шаги:
- Создать pom.xml для компонента "издателя", используя ниже ПОМ.
- Используйте Дженкинс построить для МВН развернуть его (МВН установка будет работать, а)
- Добавить зависимость в pom.xml для «потребителя» (ПОМ ниже)
- МВН компилировать потребителя
Ожидаемое поведение: Uber баночка для издателя загружаются где-то в потребительском/целевых каталогах
Actual: Uber баночка делает п OT появляются в каталоге потребителей
Компонент 1: Издательство
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mec.experiment</groupId>
<artifactId>publisher</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.6.Final</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.mf</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Компонент 2: Потребитель
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mec.experiment</groupId>
<artifactId>consumer</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.mec.experiment</groupId>
<artifactId>publisher</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
Где вы указали, что у издателя есть классификатор? Вы используете ' издателя ' в зависимости от потребителя. –
Tunaki
А, рудиментарный от предыдущего эксперимента.Я попытался с обоими выше и с POMS издатель: <конфигурация> True shadedArtifactAttached> издатель shadedClassifierName> конфигурация> потребитель: издатель Такое же поведение в обоих случаях. Обновлен потребительский пом, чтобы удалить классификатор для внутренней согласованности. –
mcating
Хорошо. Что вы подразумеваете под «целевыми каталогами» здесь? Я не уверен, что понимаю, почему издатель должен быть загружен «где-то в каталогах потребителей/целевых». – Tunaki