Arquillian的例子主要展示了如何构建WarArchive,JavaArchive等。我找不到任何好的例子如何覆盖已编译的war文件中存在的一个jar文件。
原因是其中一个jar包含persistence.xml,我不想覆盖它,例如hbm2ddl.auto等。
这样做的正确方法是什么?
答案 0 :(得分:2)
问题可能是您使用ShrinkWrap.createFromZipFile
。根据我对Arquillian的经验,最好为每个测试创建一个自定义WAR / JAR。创建部署的方法通常如下所示:
@Deployment
public static WebArchive createDeployment() {
//Load dependencies from POM
final PomEquippedResolveStage pom = Maven
.resolver()
.loadPomFromFile("pom.xml");
final PomEquippedResolveStage dependencies = pom
.importCompileAndRuntimeDependencies();
final File[] libs =
dependencies.resolve().withTransitivity().asFile();
return ShrinkWrap
.create(WebArchive.class,
"ExampleArchive.war")
.addPackage(org.example.Example.class.getPackage())
.addAsLibraries(files)
.addAsResource("test-persistence.xml",
"META-INF/persistence.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml");
}
test-persistence.xml
进入您的测试资源目录。