2011-01-04 5 views
11

Weiß jemand, wie man es ändert?Ändern der Reihenfolge der Orte auf dem Klassenpfad, die durch das todsichere Plugin geladen werden sollen

Ich meine von

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

zu

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

Sie bezieht sich auf dieses todsichere-Plugin feature request

Es ist, weil todsichere-Plugin kann nicht/Ausschluss von Ressourcen von/target/Klassen. .. Es kann nur Ressourcen über <testResources> Elemente enthalten/ausschließen, die nur/target/test-classes betreffen, nicht/target/classes

Es geschieht alles hier in todsichere-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); 
} 
+1

Das riecht wie Sie versuchen, das falsche Problem zu lösen –

+0

@Sean Patrick Floyed Ich bin mir sicher, dass ich nicht, wenn Sie das JIRA Problem lesen, vor allem die letzten 3 meiner Kommentare, habe ich einen guten Grund dafür – lisak

+0

@ lisak Ihre Kommentare scheinen Sinn zu machen, aber der Geruch bleibt: Es muss einen besseren Weg geben, um zu erreichen, was Sie versuchen zu tun –

Antwort

1

Tests in einem separaten Projekt in Betracht. Im Allgemeinen, wenn Sie ein Projekt haben, das dem Maven Way widerspricht, ist das die Lösung - teilen Sie es auf.

0

Was ich von Ihrem Merkmalsanforderungslink verstanden habe, ist, dass Sie eine src/main/resources/config.xml und eine Abhängigkeit haben, die auch eine config.xml enthält, die Sie in Ihren Tests verwenden möchten. Ist das richtig?

Wenn das der Fall ist, was Sie tun können, ist Ihre src/main/resources/config.xml an einen anderen Ort zu bewegen (nicht eine Ressource dir), wie src/config/config.xml und sie sind es in der endgültigen JAR/WAR durch die war oder jar Plugin Konfigurationseinstellung.

Auf diese Weise sehen Ihre Tests die config.xml aus Ihrer Abhängigkeit, aber nicht Ihre src/config/config.xml, da es nicht im Klassenpfad ist.

Verwandte Themen