Как связать банку-обертку, используя maven, которая включает в себя файлы классов моего кода и сторонние фляги как есть? - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в Maven и сталкиваюсь с упомянутой ниже проблемой -

Я хочу объединить все модули, которые используются родительским / корневым модулем (который содержит основной класс) в один jar.

Например:

Корневое приложение - модуль, который содержит основной класс и требует все нижеприведенные jar как зависимости

  • a.jar (файлы jar для дочерних модулей, создаваемые индивидуально с использованием maven) - относится к зависимости от пружины
  • b.jar (jar-файлы дочерних модулей, создаваемые индивидуально с использованием maven) - указывает на зависимость от спящего режима
  • c.jar (файлы jar дочерних модулей, создаваемые индивидуально с использованием maven) - относится к зависимости log4j

Я хотел бы создать jar для Root-приложения, которое может включать .class / jars модулей a, b, c, но не должно включать файлы .class для сторонних фреймворков, таких как spring, hibernate и т. Д.

Ограничение -

  • Я не могу связать весь модуль и зависимости в Zip, но только в jar
  • все jar / файлы под этим jar должны быть в classpath, если я помещаю root jar в classpath

Позвольте мне сообщить, что я уже пробовал Maven's <descriptorRef>jar-with-dependencies</descriptorRef> с использованием "maven-assembly-plugin", но это дает мне разобранную (файлы .class) структуру папок внутри jar, даже для сторонних классов фреймворка. Следовательно, я могу видеть структуру папок как

корень-приложение-1.0.0-SNAPSHOT-банку-с-dependencies.jar \ орг \ springframework \ АОП \ *. Класс

Я ищу что-то вроде:

root-app-1.0.0-SNAPSHOT.jar -

  • main.class
  • lib / a.jar (jar или взорванная структура папок .class)
  • lib / b.jar (jar или взорванная структура папок .class)
  • lib / c.jar (jar или взорванная структура папок .class)
  • lib / spring.jar (только Jar)
  • lib / hibernate.jar (только Jar)
  • lib / log4j.jar (только Jar)

В конечном итоге все jar-файлы должны быть доступны для main.class, находятся ли они в / lib или в любом другом месте внутри корневого jar-файла

...