Зависимости в 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");

[1] https://issues.jboss.org/browse/ARQ-679

Другие вопросы по тегам