2011-01-04 5 views
11

¿Alguien sabe cómo cambiarlo?Cambiar el orden de las ubicaciones en classpath que se cargará con surefire-plugin

me refiero a

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

a

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

Se refiere a este éxito seguro-plugin feature request

Es porque segura-plugin no puede incluir/excluir a los recursos del/target/classes. .. solo puede incluir/excluir recursos a través del elemento <testResources> que solo puede afectar a/target/test-classes, not/target/classes

todo sucede aquí en éxito seguro-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

Esto huele como si estuvieras tratando de resolver el problema equivocado –

+0

@Sean Patrick Floyed Estoy seguro de que no, si lees el problema JIRA, especialmente los últimos 3 de mis comentarios, tengo buenas razones para ello – lisak

+0

@ tus comentarios parecen tener sentido, pero el olor persiste: tiene que haber una mejor manera de lograr lo que estás tratando de hacer –

Respuesta

1

considerar el examen en un proyecto separado. En general, cuando tienes un proyecto que entra en conflicto con The Maven Way, esa es la solución: dividirlo.

0

Lo que he entendido desde su enlace de solicitud de función, es que tiene un src/main/resources/config.xml y una dependencia que también contiene un config.xml que desea utilizar en sus pruebas. ¿Está bien?

Si ese es el caso, lo que podría hacer es mover el src/main/resources/config.xml a otro lugar (no es un directorio de recursos), como src/config/config.xml e incluirlos en su última JAR/WAR mediante el establecimiento de la configuración war o jar plugin.

De esta forma, sus pruebas verán el config.xml de su dependencia pero no su src/config/config.xml ya que no se encuentra en el classpath.

Cuestiones relacionadas