Ответ 1
Нужно ли использовать плагин с одним банком? Вы можете достичь той же цели (упаковка в одном банке вашего приложения и всех необходимых зависимостях, в том числе транзитивных, и добавление конфигурации для Class-Path и использование более стабильного/стандартного плагина), применяя следующий подход:
- Настройте запись Class-Path в приложении Jar, используя плагин Maven Jar и метод который вы упомянули в вопросе
- Используйте Maven Assembly Plugin для упаковки одного отдельного JAR, включая зависимости, как описано здесь, в другом вопросе/ответе stackoverflow.
Пример однобайтового исполняемого файла (без использования плагина с одним банком) может быть следующим:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- your further configuration here -->
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.sample.MainApp</mainClass>
<!-- your further configuration here -->
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Если вам нужно продолжить игру с помощью classpath и Maven, я бы предложил также проверить этот вопрос здесь на stackoverflow.