Как получить конечную банку с зависимостью внутри этой банки в формате jar?

Мне нужна конфигурация для Maven, в которой все библиотеки внутри проекта находятся в финальной банке в формате jar... Поэтому мне нужно иметь банки внутри финальной банки. Для этого я могу использовать только maven. Я уже безуспешно пытался использовать такие плагины, как one-jar. Спасибо

Вы хотите создать только одну банку, которая должна содержать все классы из вашего приложения и сторонних библиотек?

Sambit 27.05.2019 10:37

Да, но я не хочу, чтобы библиотеки были распакованы в файлах .class.

Lorenzo 27.05.2019 10:38

Можно ли сказать, зачем нужны кувшины внутри кувшина, а не класс

Vysakhan Kasthuri 27.05.2019 10:49

Поскольку агентство, в котором я работаю, использует Serena для развертывания программ, и когда Serena взрывает (извлекает) файл jar в каталоге, мне нужно иметь в этом каталоге файлы jar, а не .class

Lorenzo 27.05.2019 10:54

Дубликат stackoverflow.com/questions/11758594/… ?

Thilo 27.05.2019 10:54

Нет, потому что в этом вопросе они хотят поместить файлы библиотеки jar в каталог за пределами последней банки, поэтому она отличается. Мне нужно, чтобы они были внутри последней банки.

Lorenzo 27.05.2019 10:56

one-jar действительно должно быть правильным решением, см. mkyong.com/maven/maven-create-a-fat-jar-file-one-jar-example, если нет, можете ли вы объяснить, почему?

luca.vercelli 27.05.2019 11:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
232
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы создать файл 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?

Sambit 27.05.2019 13:47

@ Самбит Да. Это сделает fat.jar файл

Hasitha Jayawardana 27.05.2019 13:48

Я знаю, что это создаст толстую банку, но содержит ли эта толстая банка другие файлы jar?

Sambit 27.05.2019 13:49

Он содержит все зависимости. (Другие банки) Связывает все зависимости с файлом jar.

Hasitha Jayawardana 27.05.2019 13:54

Не уверен для вложенной банки, потому что я еще не пробовал.

Но я создал файл .jar со всеми зависимостями проекта (указанными в файле pom)

Попробуйте выполнить команду mvn в терминале...

mvn org.apache.maven.plugins:maven-assembly-plugin:2.6:assembly -DdescriptorId=jar-with-dependencies package

Другие вопросы по теме