10

変更方法を知っている人はいますか?

つまり、から

target/test-classes ... target/classes .... maven dependencies

target/test-classes ... maven dependencies .... target/classes 

これは、このsurefire-plugin機能リクエストに関連しています

これは、surefire-plugin が /target/classes からリソースを含めたり除外したりできないためです ... /target/ <testResources>classes ではなく、/target/test-classes のみに影響する要素を介してのみリソースを含めたり除外したりできます

それはすべて Surefire-plugin で行われます:

File projectClassesDirectory = new File( project.getBuild().getOutputDirectory() );
if ( !projectClassesDirectory.equals( classesDirectory ) )
{
    int indexToReplace = classpathElements.indexOf( project.getBuild().getOutputDirectory() );
    if ( indexToReplace != -1 )
    {
        classpathElements.remove( indexToReplace );
        classpathElements.add( indexToReplace, classesDirectory.getAbsolutePath() );
    }
    else
    {
        classpathElements.add( 1, classesDirectory.getAbsolutePath() );
    }
}

File projectTestClassesDirectory = new File( project.getBuild().getTestOutputDirectory() );
if ( !projectTestClassesDirectory.equals( testClassesDirectory ) )
{
    int indexToReplace = classpathElements.indexOf( project.getBuild().getTestOutputDirectory() );
    if ( indexToReplace != -1 )
    {
        classpathElements.remove( indexToReplace );
        classpathElements.add( indexToReplace, testClassesDirectory.getAbsolutePath() );
    }
    else
    {
        classpathElements.add( 0, testClassesDirectory.getAbsolutePath() );
    }
}

getLog().debug( "Test Classpath :" );

for ( Iterator i = classpathElements.iterator(); i.hasNext(); )
{
    String classpathElement = (String) i.next();

    getLog().debug( "  " + classpathElement );

    surefireBooter.addClassPathUrl( classpathElement );
}
4

2 に答える 2

1

別のプロジェクトでテストすることを検討してください。一般に、Maven Way と競合するプロジェクトがある場合は、分割することが解決策です。

于 2011-06-29T16:09:16.933 に答える
0

あなたの機能要求リンクから私が理解したのは、テストで使用したいsrc/main/resources/config.xmla も含むいくつかの依存関係があるということです。config.xmlそうですか?

その場合は、 warまたはjarプラグイン構成を設定して、最終的な JAR/WAR に含めるsrc/main/resources/config.xmlなど、別の場所 (リソース ディレクトリではない) に移動することができます。src/config/config.xml

そうすれば、テストはconfig.xml依存関係から参照しますがsrc/config/config.xml、クラスパスにないため、依存関係からは参照しません。

于 2011-12-06T03:59:49.373 に答える