我正在使用 Arquillian 将 war 部署到 JBoss 7.x 中进行测试,它依赖于 Apache Commons Collections。但是,它似乎并没有获取模块依赖性。
list .MF
Dependencies: org.apache.commons.collectionss export
Arquillian 部署
@Deployment
public static Archive<?> createDeployment() {
WebArchive archive = ShrinkWrap.create(WebArchive.class);
archive
.addPackages(true, "com.example.package")
.addAsResource("META-INF/MANIFEST.MF", "META-INF/MANIFEST.MF")
// * Tried the following two options with no luck
//.AddAsManifestResource("META-INF/MANIFEST.MF", "MANIFEST.MF")
//.AddAsWebInfResource("META-INF/MANIFEST.MF", "META-INF/MANIFEST.MF")
// * If I enable the following, it works fine. getLibrary just picks
// * up the lib through maven.
//.addAsLibraries(
// getLibrary("commons-collections:commons-collections:3.2.1"))
;
return archive;
}
我不想使用 jboss-deployment-structure.xml
,因为它感觉就像用大锤敲坚果一样。
有什么想法吗?
最佳答案
在我的例子中,我在 src/test/resources
和 .addAsManifestResource("MANIFEST.MF")
中添加了一个 MANIFEST.MF
用于阿奎利安
MANIFEST.MF
Manifest-Version: 1.0
Built-By: me
Build-Jdk: 1.6.0_45
Created-By: Maven Integration for Eclipse
Dependencies: org.infinispan export
Arquillian
@Deployment(testable = false)
public static WebArchive createDeployment() {
MavenDependencyResolver mvnResolver = DependencyResolvers.use(MavenDependencyResolver.class).loadMetadataFromPom("pom.xml").goOffline();
return ShrinkWrap
.create(WebArchive.class, "example.war")
.addPackages(true, Filters.exclude(".*Test.*"), "com/comapany/")
.addAsManifestResource("MANIFEST.MF")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
}
}
关于jboss7.x - 使用 MANIFEST.MF 部署 war - 依赖关系被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949648/