Я новичок в 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-файла