Профили должны хорошо подходить для этого. Согласно информации в документы профиля сборки maven, это не должно работать. В частности, говорят
build as specified inside of a profile is not a full implementation of the traditional
build POM element. This build is really another class in the model - from which the POM
build is derived - and only allows the plugins and pluginManagement subelements when
defined here. This sidesteps any issues with secondary validation after the pom.xml is
parsed in this case.
Но я только что протестировал его, и он включил соответствующие ресурсы, включив элемент сборки с определением ресурсов внутри.
В вашем pom вы захотите включить профиль для каждого из ваших веб-приложений. Например, в моем тесте я сделал следующее:
<profile>
<id>abc</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>abc</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>xyz</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<resources>
<resource>
<directory>xyz</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</profile>
Затем у меня был каталог abc, содержащий файл abc.properties, и еще один xyz с соответствующим файлом xyz.properties.
Для всех общих ресурсов у вас будет элемент, который также содержит элемент, включающий все те, которые вы хотите использовать в каждом веб-приложении.
Наконец, при сборке вы должны указать профиль веб-приложения, которое хотите создать, например, mvn -P abc clean install
Одна БОЛЬШАЯ проблема, которая может возникнуть при таком подходе, заключается в том, что каждый созданный артефакт будет иметь одно и то же имя, и один из них перезапишет другой в вашем локальном репозитории.
person
digitaljoel
schedule
14.10.2009