我们有一个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引用它也不起作用。
缺少什么?
答案 0 :(得分:3)
在'maven install'[1]
期间报告了类似的问题提供了以下解决方案: - 直接提及依赖项。
使用:
.addAsManifestResource(“Dependencies:org.infinispan.infinispan-tree,org.infinispan”,“MANIFEST.MF”);
而不是: .addAsManifestResource(“META-INF / MANIFEST.MF”,“MANIFEST.MF”);
答案 1 :(得分:1)
事实证明,事情变得更加简单。
即使使用.addAsManifestResource或.setManifest,MANIFEST.MF也是由Maven自动生成的。
这是通过pom.xml中的以下部分解决的,而不是使用自定义MANIFEST.MF并使用.setManifest(&#34; META-INF / MANIFEST.MF&#34;); 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>