JBehave を使用しており、テストの実行中にローカル フォルダーと jar をクラスパスに追加する必要があります。問題は、ローカル フォルダーがシステムごとに異なる可能性があることです。そのシステムにインストールされている jar とそのシステムで定義されているリソースを調べて、テストを実行したいと考えています。
システムごとに変更される可能性のある依存関係を maven に追加するにはどうすればよいですか?
JBehave を使用しており、テストの実行中にローカル フォルダーと jar をクラスパスに追加する必要があります。問題は、ローカル フォルダーがシステムごとに異なる可能性があることです。そのシステムにインストールされている jar とそのシステムで定義されているリソースを調べて、テストを実行したいと考えています。
システムごとに変更される可能性のある依存関係を maven に追加するにはどうすればよいですか?
pom.xml
usingで環境変数を使用できます${env.VARIABLE_NAME}
。pom にローカル フォルダーへのパスがある場合は、それを変数に置き換えることができます。その場合、maven ジョブを実行するすべてのシステムでその変数を設定する必要があります。その方法について、 LinuxとWindowsのガイドをいくつか見つけました。これがあなたの問題に合うことを願っています。
テストはmaven-surefire-pluginによって実行されます。プラグインには唯一のゴールSurefire:testがあり、このゴールはadditionalClasspathElementsの構成をサポートします。
使用例はこちらでご覧いただけます。このページの設定例は次のようになります。
<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プロファイルを使用できます。