Как вы генерируете зависимости модуля в MANIFEST.MF для JBoss AS 7 с maven? - PullRequest
28 голосов
/ 14 июля 2011

В JBoss AS 7 веб-приложение, которое зависит от библиотек, содержащихся в AS, должно объявить эти зависимости в META-INF / MANIFEST.MF следующим образом:

Dependencies: <package-name>

Пример:

Dependencies: org.slf4j

(Это сопоставимо с Import-Package: для OSGi.) Дополнительную информацию можно найти в статьях о миграции с более старых версий , загрузка классов и неявных зависимостей модуля для развертываний

Проект построен с Maven. Все зависимости, включенные в AS, объявляются с областью «предоставлено».

Теперь вопрос

Есть ли простой способ автоматически создать этот список зависимостей с помощью Maven?

Должны быть включены только зависимости с объявленной областью действия «предоставлено», поскольку все остальные уже включены в WAR.

Ответы [ 2 ]

27 голосов
/ 16 июля 2011

Эти зависимости объявляются именами, с которыми у артефактов 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>

Я надеюсь, что кто-то придумает плагин, чтобы сделать его менее громоздким.

1 голос
/ 08 ноября 2013

Этот код автоматически добавляет все ваши зависимости компиляции в ваш 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...