Зависимости в MANFEST.MF игнорируются на JBoss 7
У нас есть модуль EJB, который мы разворачиваем на JBoss 7.1.1, который зависит от Infinispan и Infinispan Treecache.
Я создал модуль и развернул его в разделе модулей jboss.
Однако, похоже, что проблема в том, что его правильно подобрали. Это выполняется как тест Арквилиана. Развертывание:
@Deployment
public static Archive<?> createDeployment() {
Archive<?> archive = ShrinkWrap.create(JavaArchive.class)
.addPackages(true, "<package>")
.addAsManifestResource("META-INF/MANIFEST.MF", "MANIFEST.MF")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
MANIFEST.MF выглядит следующим образом
Manifest-Version: 1.0
Dependencies: org.infinispan.infinispan-tree, org.infinispan
infinispan-tree - это модуль, который был добавлен в jboss вручную.
Чтобы проверить, что это не была конфигурация модуля, эти два модуля были сделаны глобальными в standalone.xml, и вот, все работает нормально.
Даже изменение только org.infinispan (включенного в JBoss 7.x), чтобы оно было неглобальным, и попытка сослаться на это из MANIFEST.MF не сработала.
Чего не хватает?
2 ответа
Все оказалось намного проще.
Даже с.addAsManifestResource ИЛИ.setManifest файл MANIFEST.MF был автоматически сгенерирован Maven.
Это было решено с помощью следующего раздела в pom.xml вместо использования пользовательского файла MANIFEST.MF и использования.setManifest("META-INF/MANIFEST.MF"); MANIFEST.MF генерируется автоматически, и в папке ресурсов нет настраиваемой копии (чтобы избежать путаницы больше, чем что-либо еще, поскольку она все равно игнорировалась)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>
org.infinispan,
org.infinispan.infinispan-tree export,
</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
О подобной проблеме сообщалось во время установки maven [1].
Было предложено следующее решение:- напрямую упомянуть зависимости.
Использование:
.addAsManifestResource ("Зависимости: org.infinispan.infinispan-tree, org.infinispan","MANIFEST.MF");
Вместо: .addAsManifestResource ("META-INF / MANIFEST.MF", "MANIFEST.MF");