添加 Arquillian 依赖项
将 Arquillian 依赖项添加到您的 :pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.8.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
将 ShrinkWrap 解析器(Maven 实现)添加到您的 :pom.xml
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
<scope>test</scope>
</dependency>
如果您使用的是 JUnit,请将 Arquillian JUnit 容器添加到您的 :pom.xml
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
导入 Maven 依赖项
在测试类中,在 带 注释的方法中,使用以下行导入运行时依赖项:@Deployment
File[] files = Maven.resolver().loadPomFromFile("pom.xml")
.importRuntimeDependencies().resolve().withTransitivity().asFile();
并使用以下方法将依赖项添加到部署中:addAsLibraries(files)
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addClass(MyClass1.class)
.addClass(MyClass2.class)
.addClass(MyClass3.class)
.addAsLibraries(files);
这是使用 JUnit 时测试类的样子
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
import java.io.File;
@RunWith(Arquillian.class)
public class MyTestClassWithMavenDependencies {
@Deployment
public static WebArchive createDeployment() {
// Import Maven runtime dependencies
File[] files = Maven.resolver()
.loadPomFromFile("pom.xml")
.importRuntimeDependencies()
.resolve()
.withTransitivity()
.asFile();
// Create deploy file
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addClass(MyClass1.class)
.addClass(MyClass2.class)
.addClass(MyClass3.class)
.addAsLibraries(files);
// Show the deploy structure
System.out.println(war.toString(true));
return war;
}
// Create your tests here
}
注1:上述解决方案已经过Arquillian 1.1.8.Final的
测试。在文档中查看最新版本的 Arquillian 工件。
注2:有关如何解析依赖项的更多详细信息,请查看 ShrinkWrap 解析程序文档。