gpt4 book ai didi

java - Maven:使用外部库进行集成测试

转载 作者:行者123 更新时间:2023-11-28 21:33:50 24 4
gpt4 key购买 nike

目前,我设置了一个集成测试套件。基础是一个 Maven 项目,有几个模块相互依赖以设置数据库,将一些数据放入其中并对其运行测试,然后再将所有内容打包。此外,我还有一些模块,其中包含一些实用程序和测试数据。

第一步(上面没有提到)是压缩图像的副本,其中包含许多构成要测试的软件套件的 JAR 文件。不幸的是,该软件不是由 Maven 构建的,而是由 Ant 构建的,所以我在 Artifactory 或类似的东西中找不到这些东西。

我现在的问题是,我使用集成测试方法复制并解压缩图像,但我不知道如何将 JAR 文件添加到 Maven 类路径。所有其他模块都需要针对从 ZIP 文件中提取的 jar 进行编译和运行。

如何将 JAR 添加到 Maven 类路径以供以后编译和测试运行? ZIP 内容的目的地始终是同一目录。不幸的是,JAR 的名称包含会更改的版本信息(内部版本号)。因此,系统和标签的简单使用并不那么容易。像 ${package.path}/lib/*/.jar 这样的路径条目会很棒。有插件吗?

或者有没有人有更好的主意来针对预构建 JAR 设置集成测试?

最佳答案

从所有依赖项创建一个 jar,所有内容都在 ${package.path}/lib/*/.jar 中。

您可以在运行 maven 之前或作为 maven 构建的一部分使用 ant 任务来创建此 jar。

要合并您的 jar,您可以使用 Ant Jar Task (请参阅合并文件部分)。从那里:

<jar destfile="build/main/checksites.jar">
<fileset dir="build/main/classes"/>
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<fileset dir="lib/main" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
</jar>

这会创建一个 jar 文件,其中嵌入了 lib/main 中所有 jar 的所有类。

然后您可以在 Maven 中正常使用指向此 jar 的系统范围。注意:如果您在 maven 中创建 jar(通过 ant),那么您应该在 target 中创建 jar,以便正确清理它。

要使用 maven 中的 ant 构建文件,您可以使用 maven antrun plugin ,类似于:

<plugin>
<artifactId>maven-antrun-plugin</artifactId>

<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="local.project.artifact.name" value="${project.build.finalName}" />
<property name="local.distribution.artifact.name" value="${local.project.artifact.name}-distribution" />
<property name="local.distribution.artifact.file" value="${project.build.directory}/${local.distribution.artifact.name}.zip" />
<ant antfile="build-deploy.xml" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>

这会在打包阶段运行 ant 构建文件 build-deploy.xml。您的系统所需的修改留给读者作为练习:-)。

关于java - Maven:使用外部库进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8286359/

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