9

我们有一个 EJB 模块,我们正在部署到 JBoss 7.1.1,它依赖于 Infinispan 和 Infinispan Treecache。

我创建了一个模块并将其部署在 jboss 的模块部分。

但是,正确拾取它似乎存在问题。这是作为 Arquillian 测试运行的。部署是:

@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 中引用它也不起作用。

什么不见​​了?

4

2 回答 2

3

在 'maven install' [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

于 2013-12-17T10:50:54.637 回答
1

整个事情变得简单了很多。

即使使用 .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>
于 2013-12-17T12:00:32.470 回答