2014-12-11 6 views
3

У меня есть сложный сценарий упаковки моих EAR проектов, ниже вид визуального описания, чтобы полностью понять:Исключить файл свойств из суб-модуля типа WAR в Maven

ProjA.ear 
|-- ProjA.war 
|-- Util.war 
| |-- WEB-INF 
| | |-- classes 
| | | -- log4j.properties 

Кроме того, у меня есть еще один проект, структура которого:

ProjB.ear 
|-- ProjB.war 
|-- Util.war 
| |-- WEB-INF 
| | |-- classes 
| | | -- log4j.properties 

Util.war является общим проектом (за исключением log4j.properties) для обоих ProjA и ProjB.

Ниже, как я указал зависимость Util.war в обоих ProjA и ProjB:

<dependency> 
     <groupId>abc</groupId> 
     <artifactId>xyz</artifactId> 
     <version>${project.version}</version> 
     <type>war</type> 
    </dependency> 

Теперь вопрос: Поскольку у меня есть разные версии log4j.properties файла для каждого проекта, как может Я настраиваю Maven для добавления специального файла ProjA при упаковке ProjA и использования другой версии при упаковке ProjB?

Пожалуйста, дайте мне знать, если вы не понимаете смешавшийся сценарий :).

С уважением,

ответ

0

я думаю, вы могли бы удалить ваши log4j.properties из Util.war, потому что это приложение зависит. вместо этого вы можете использовать для этого классы ProjA.ear/APP-INF/и папку ProjB/APP-INF/classes.

см What difference between app-inf and web-inf folders in JavaEE applications?

Ваш Application Server добавляет эту папку автоматически в Class-Path. Но быть в курсе родитель первый/ребенок первого класса загрузки

см Java EE and Java SE classloading

Однако, в Java EE, загрузчики классов сначала пытается загрузить сам класс, а затем делегировать загрузку классов этого класса к своему родительскому загрузчику ,

Данное заявление относится к вашему серверу приложений.

Смежные вопросы