Мне нужна конфигурация для Maven, в которой все библиотеки внутри проекта находятся в финальной банке в формате jar... Поэтому мне нужно иметь банки внутри финальной банки. Для этого я могу использовать только maven. Я уже безуспешно пытался использовать такие плагины, как one-jar. Спасибо
Да, но я не хочу, чтобы библиотеки были распакованы в файлах .class.
Можно ли сказать, зачем нужны кувшины внутри кувшина, а не класс
Поскольку агентство, в котором я работаю, использует Serena для развертывания программ, и когда Serena взрывает (извлекает) файл jar в каталоге, мне нужно иметь в этом каталоге файлы jar, а не .class
Дубликат stackoverflow.com/questions/11758594/… ?
Нет, потому что в этом вопросе они хотят поместить файлы библиотеки jar в каталог за пределами последней банки, поэтому она отличается. Мне нужно, чтобы они были внутри последней банки.
one-jar действительно должно быть правильным решением, см. mkyong.com/maven/maven-create-a-fat-jar-file-one-jar-example, если нет, можете ли вы объяснить, почему?
Чтобы создать файл fat jar
, включающий все ваши файлы jar
, добавьте следующий код в свой файл pom.xml
. Когда вы clean and build
проект, автоматически создается fat jar
файл. Вы должны дать свой тег main class
внутри <mainClass>
. Вот и все.
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>your.main.class</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>final-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Содержит ли он несколько файлов jar внутри одного файла jar?
@ Самбит Да. Это сделает fat.jar
файл
Я знаю, что это создаст толстую банку, но содержит ли эта толстая банка другие файлы jar?
Он содержит все зависимости. (Другие банки) Связывает все зависимости с файлом jar.
Не уверен для вложенной банки, потому что я еще не пробовал.
Но я создал файл .jar со всеми зависимостями проекта (указанными в файле pom)
Попробуйте выполнить команду mvn в терминале...
mvn org.apache.maven.plugins:maven-assembly-plugin:2.6:assembly -DdescriptorId=jar-with-dependencies package
Вы хотите создать только одну банку, которая должна содержать все классы из вашего приложения и сторонних библиотек?