とクラスパスをプリントアウトする際にクラスパスで目的のファイルが見つからされることはありませんし、常に不足している テストを実行するときに使用中のMavenとJVMで実行JVMの違いがあります。
surefireプラグインは、独自のJVMを生成してテストケースを実行します。プロジェクトの依存関係
プロジェクトのテスト-classesディレクトリ
- プロジェクトのclassesディレクトリ:デフォルトでは、次のようにJVMのクラスパスということが含まれます。
あなたの質問が正しく理解されている場合は、テストを実行しているJVMのクラスパスに別のディレクトリを追加します。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<additionalClasspathElements>
<additionalClasspathElement>path/to/your/additional/directory</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</plugin>
詳細here:もしそうなら、あなたはそうのような追加のクラスパスエントリを追加することができます。
あなたは(MAVEN_OPTSのあなたの言及が示すように)動的にコマンドラインパラメータを経由して確実なJVMが使用するクラスパスを変更したい場合、あなたはこのようなadditionalClasspathElement
を定義することができます...
<additionalClasspathElement>${additionalClasspathDir}</additionalClasspathElement>
..そして次のようにMavenを呼び出します:
mvn test -DadditionalClasspathDir=path/to/your/additional/directory
これらのパスに変数を追加する方法はありますか?maven opsの場合は?私たちはpomファイルにハードコードされたパスを持っていません。 – Johng
surefireプラグインで使用されるクラスパスを動的に変更するという要件に対処するために私の答えを更新しました。確かなプラグインは、クラスパスをどのように作成するのか、またあなたの望むディレクトリがプロジェクトのクラスパス上にまだ存在せず、それに追加できないのかどうかは明らかです([Maven Build Helper Plugin](http://www.mojohaus.org/build) -helper-maven-plugin /)など)を使用している場合は、 'additionalClasspathElements'を使用してください。 – glytching
これはうまくいきました。変数に-D接頭辞を追加するだけでした – Johng