Итак, оказывается, ты вроде не можешь.
Мое решение было следующим:
обновите файл assembly.xml и pom.xml следующим образом:
сборка:
<assembly>
<id>assembly</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<unpack>true</unpack>
<excludes>
<exclude>groupId:artifactIdOfResourceIWant</exclude>
</excludes>
</dependencySet>
<dependencySet>
<outputDirectory>lib-packed</outputDirectory>
<unpack>false</unpack>
<includes>
<include>groupId:artifactIdOfResourceIWant</include>
</includes>
</dependencySet>
</dependencySets>
</assembly>
пом:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>${main.class}</mainClass>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
По сути, это обычно распаковывает все зависимости, но оставляет конкретную, которая вам нужна, чтобы не распаковывать ее как файл jar внутри файла jar.Это снижает сложность только до тех банок, которые вам нужно распаковать.
Теперь проблема с этим остается тем, что Class-Path может использовать только синтаксис dir / * для внешней загрузки всех банок, и его нельзя использовать для загрузкиjarfile (даже с определенными именами). Поэтому, чтобы оставить jar в комплекте и автоматически загрузить его, мне нужно изменить мой код, чтобы иметь специальный загрузчик классов, который читает этот файл.