Используя Shade, я загружаю Uberjar в репозиторий:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>myjar</shadedClassifierName>
</configuration>
</execution>
</executions>
</plugin>
Затем у меня есть другое приложение, которому нужен доступ к этой банке. Я планировал просто иметь pom в репозитории других приложений и иметь сценарии развертывания, вызывающие mvn install или что-то еще, чтобы загрузить uber jar локально. Я не уверен, как просто скачать Uber JAR.
Это POM создает blahblah-1.jar
в целевой папке, когда я запускаю mvn install. Я хочу, чтобы он вытащил Uber JAR в определенный каталог. Как я могу сделать это в конфиге pom? Я не хочу передавать конкретные параметры в mvn - я хочу, чтобы конфиг был в pom, чтобы я мог просто выполнить что-то вроде mvn install
, и оно сбрасывает зависимость uber jar в правильный каталог. Я хочу использовать pom для всех настроек, потому что это будет означать, что мой CI \ CD-сервер просто должен вызвать ту же команду для других приложений, подобных этой, и настройки будут в pom
<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>derps</groupId>
<artifactId>blahblah</artifactId>
<version>1</version>
<!-- Retrieve artifacts from internal repo -->
<repositories>
<repository>
<id>myrepo</id>
<name>my repo</name>
<url>https://myrepo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>myjar</classifier>
</dependency>
</dependencies>
</project>