Как вы создаете зависимости модулей в MANIFEST.MF для JBoss AS 7 с maven?
В JBoss AS 7 веб-приложение, которое зависит от библиотек, содержащихся в AS, должно объявлять эти зависимости в META-INF/MANIFEST.MF следующим образом:
Dependencies: <package-name>
Пример:
Dependencies: org.slf4j
(Это сопоставимо с Import-Package: для OSGi.)
Дополнительную информацию можно найти в статьях о миграции из более старых версий, загрузка класса и неявные зависимости модулей для развертываний
Проект построен с Maven. Все зависимости, включенные в AS, объявляются с областью "предоставлено".
Теперь вопрос
Есть ли простой способ создать этот список зависимостей автоматически с помощью Maven?
Должны быть включены только зависимости с объявленной областью "предоставлены", поскольку все остальные уже включены в WAR.
Ответы
Ответ 1
Эти зависимости объявляются именами, в которых артефакты maven не имеют сопоставлений. Вероятно, вы могли бы сохранить groupId в синхронизации с именами модулей jboss, но я не уверен, что это хорошая идея. И я до сих пор не могу придумать никакого автоматизированного решения.
Но есть место, где вы можете управлять настройкой вручную, как описано в одном из источников, которые вы указали в своем вопросе:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>org.slf4j</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
Надеюсь, кто-то придумает плагин, чтобы сделать его менее громоздким.
Ответ 2
Этот код автоматически добавляет все ваши компиляционные параметры в ваш MANIFEST.MF
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
подробнее здесь: http://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html