我们正在使用 JBehave,在运行测试时,我们需要在运行测试时将本地文件夹和 jar 添加到类路径中。问题是本地文件夹可能因系统而异。我们希望通过查看该系统上安装的 jar 和该系统上定义的资源来运行测试。
如何向 maven 添加一个可以从系统更改为系统的依赖项?
我们正在使用 JBehave,在运行测试时,我们需要在运行测试时将本地文件夹和 jar 添加到类路径中。问题是本地文件夹可能因系统而异。我们希望通过查看该系统上安装的 jar 和该系统上定义的资源来运行测试。
如何向 maven 添加一个可以从系统更改为系统的依赖项?
测试由maven-surefire-plugin执行。该插件只有一个目标surefire:test并且该目标支持附加类路径元素的配置。
您可以在此处找到使用示例。此页面上的示例配置如下所示:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.2</version>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>path/to/additional/resources</additionalClasspathElement>
<additionalClasspathElement>path/to/additional/jar</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
我会走这条路。要更改每个系统的本地文件夹位置,您可以使用环境变量或不同的 Maven配置文件。
您可以在pom.xml
using中使用环境变量${env.VARIABLE_NAME}
。如果您在 pom 中有本地文件夹的路径,则可以将其替换为变量。如果这样做,则必须在执行 maven 作业的每个系统上设置该变量。我找到了一些关于如何做到这一点的linux和windows指南。希望这适合您的问题。