2013-07-29 4 views
1

У меня есть простая структура проекта Maven:Propagate при условии, зависимости зависимого проекта

mainProject 
|-- subProject1 
| |-- subSubProject 
|-- subProject2 

Дело в том, что у меня есть MainProject, который содержит зависимости, используемые в каждом из подпроектов (эти зависимости являются общими для каждого подпроекта), но я не хотят, чтобы они были включены в мой WAR-файл в конце, когда он скомпилирован и построен (предоставлена ​​область). Кроме того, я не хочу объявлять зависимости в каждом из подпроектов, так как я уже объявил их в mainProject.

Файл WAR содержит все подпроектные библиотеки в его встроенных файлах.

Благодаря

+0

Опишите, пожалуйста, подробную информацию о вашей проблеме и подробностях о ней. Что вы пробовали, что этого не делаете? – Augusto

+1

mainProject - просто простой родительский pom, который содержит зависимости для других подпроектов? Это немного расплывчато, что вы просите. – sfat

+0

Являются ли эти сторонние банки или ваши внутренние конкретные банки проекта. ? - Спасибо – saurav

ответ

1

На мой взгляд, может быть два решения этой проблемы.

1.) Вы можете изменить область действия для компиляции и при создании военного файла вы можете исключить все те банки, которые вы не хотите в своем военном файле, с помощью maven-war-plugin, как это.

<build> 
<plugins> 
    <plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <packagingExcludes>WEB-INF/lib/xyz.jar</packagingExcludes> 
    </configuration> 
    </plugin> 
</plugins> 

2.) Если они 3 участника конкретные банки, то вы можете переместить их на сервер Lib каталога и во время выполнения веб-контейнер обеспечит необходимые классы.

+0

1. Их слишком много для создания этой конфигурации исключения. Я думал об этом, но проект постоянно растет, и в конечном итоге я потерял бы след этих зависимостей. 2. Эти сторонние банки хранятся где-то в другом месте и загружаются в контейнер с помощью VirtualWebappLoader – jMn

+0

Спасибо @ tech-idiot, мне удалось решить проблему, используя packageIncludes. – jMn

0

У меня нет большого опыта работы с Maven, но я помню, как наблюдали за родителями, перечисленными в файле poms, с которым я работал. Кажется, вы любите, что вы включаете свой основной проект pom в качестве родительского помпе, а затем добавляете зависимые от подпроекта зависимости в своих соответствующих поминах. I думаю scope = предоставленный в родительском помпе по-прежнему будет поддерживать общие зависимости от военного файла в конце.

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