В настоящее время я работаю с устаревшим приложением, чей процесс создания плагинов требует добавления зависимостей примерно от 150 файлов jar, отличных от maven (я полагаю?). В идеале я хотел бы упаковать эти 150 банок в один JAR, поместить его в Artifactory и использовать его как зависимость от maven, чтобы моей команде было проще настроить свою среду разработки.
Я экспериментировал с one-jar, maven-assembly-plugin и maven-shade-plugin, который, кажется, просто создает одну банку, содержащую несколько других банок (т.е. распаковывает содержимое). Однако при добавлении этого jar-файла в качестве зависимости от maven maven не может разрешить содержимое/зависимости в этих «вложенных jar-файлах».
Приведенный ниже код является лишь примером того, что я пробовал; поэтому не стесняйтесь предлагать другие подходы.
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company</groupId>
<artifactId>some-jars</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>someName</name>
<properties>
<jdk.version>1.8</jdk.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.mycompany.mypackage.MyMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.dstovall</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<binlibs>
<fileSet>
<directory>${basedir}/jars</directory>
<includes>
<include>*</include>
</includes>
</fileSet>
</binlibs>
<!-- Optional, default is false -->
<attachToBuild>true</attachToBuild>
<!-- Optional, default is "onejar" -->
<classifier>onejar</classifier>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>onejar-maven-plugin.googlecode.com</id>
<url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
</pluginRepository>
</pluginRepositories>
</project>