gpt4 book ai didi

java - 将所有 Maven 依赖项添加到 Arquillian

转载 作者:IT老高 更新时间:2023-10-28 20:32:24 26 4
gpt4 key购买 nike

如何将 POM 中的所有依赖项添加到 arquillian 中?

Maven.resolver().loadPomFromFile("pom.xml").importRuntimeDependencies()
.as(File.class);

我找到了那行,但我的 Maven 在 intellij 中是红色的,因为它没有找到类。我不知道我需要哪些依赖项。还是有更好的方法?

最佳答案

添加 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 进行了测试。在 documentation 上查看最新版本的 Arquillian Artifact .

注意 2: 有关如何解决依赖关系的更多详细信息,请查看 ShrinkWrap Resolvers documentation .

关于java - 将所有 Maven 依赖项添加到 Arquillian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13001371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com