我正在使用Arquillian将一个war部署到Apache7.x中进行测试,它依赖于JBoss Commons Collections。然而,它似乎就是不能接受模块依赖。
MANIFEST.MF
Dependencies: org.apache.commons.collectionss exportArquillian部署
@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,因为它感觉就像用大锤敲坚果一样。
有什么想法吗?
发布于 2013-12-17 20:13:41
结果,我问了同样的问题again (这次是关于Jar Files),因为我把这个问题忘得一干二净。
自那以后,解决方案也被发现了:(与其他问题相同)
整个事情变得简单多了。
即使使用.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-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>
org.infinispan,
org.infinispan.infinispan-tree export,
</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>发布于 2013-05-29 16:35:55
在我的例子中,我在src/test/resources和.addAsManifestResource("MANIFEST.MF")中为Arquillian添加了一个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 exportArquillian
@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");
}
}https://stackoverflow.com/questions/15949648
复制相似问题