Подтвердить что ты не робот

Как вы создаете зависимости модулей в 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.

4b9b3361

Ответ 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