У меня есть «Utilty Project» и «EAR Project», который включает в себя «Utility Project». Все классы из 'Utility Project' в итоге будут упакованы как JAR и помещены в каталог 'lib' экспортируемого EAR, например:
EAR.ear
META-INF
MANIFEST.MF
lib
utility.jar (which expands to):
META-INF
MANIFEST.MF
com
acme
Foo.class
Bar.class
Однако «служебный проект» использует библиотеку (freemarker.jar), которая была добавлена в путь сборки с помощью «Свойства> Путь сборки Java> Библиотеки». Все, что я хочу сделать, это добавить freemarker.jar в EAR следующим образом:
EAR.ear
META-INF
MANIFEST.MF
lib
**freemarker.jar**
utility.jar (which expands to):
META-INF
MANIFEST.MF
com
acme
Foo.class
Bar.class
Поискав в Eclipse, я нашел 4 возможных пути достижения этого, ни один из которых не сработал. Если бы кто-то мог просто пойти на погоню и сказать мне, что я должен на самом деле делать, это было бы здорово. Но на всякий случай я буду повторять их здесь:
Из свойств «Утилиты»:
- Если я выберу «Путь сборки Java> Порядок и экспорт» и выберу «freemarker.jar» для экспорта, jar вообще не окажется в файле EAR.
- Если я нажимаю «Зависимости модуля Java EE» и выбираю библиотеку «freemarker.jar» в качестве зависимости, она говорит:
Этот JAR-пакет является библиотекой
EAR проект и должен быть
упакован в директорию библиотеки EAR.
Это конфликтует с классом манифеста
зависимость от пути вы пытаетесь
Создайте. Если вы создаете эту зависимость,
баночка будет упакована в корень
(не библиотека) каталог EAR.
Вы уверены, что хотите продолжить?
Из свойств 'EAR Project':
- Если я щелкну «Зависимости модуля Java EE> Добавить JAR-файлы ...» и перейду к «freemarker.jar» и сделаю его зависимым, он будет добавлен в корень EAR:
/freemarker.jar
- Если я сделаю то же, что и выше, но установлю флажок «In Lib Dir», он будет добавлен в папку lib, но содержится в другой папке lib:
/lib/lib/freemarker.jar
Спасибо.