2012-03-16 10 views
6

Quiero excluir un directorio en Gradle .. Estoy usando el siguiente código .. Cuando hago un minus (también he intentado exclude el directorio que estoy tratando de quitar no está todavía presente en srcDirs (cuando la salida al final)Excluir directorio de sourceSet no funciona en Gradle

Sugerencias

apply plugin: 'java' 

sourceSets { 
    test { 
    java { 
     srcDirs 'src/test/unit/java' 
     minus 'src/test/java'    
    } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 
+0

¿Qué versión de Gradle está usando? –

Respuesta

8

probar este lugar:.?

apply plugin: 'java' 

sourceSets { 
    test { 
     java { 
      srcDirs = ['src/test/unit/java'] 
     } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 

esta rea indica la lista de directorios de origen (aquí solo uno) para la propiedad srcDirs. utilizando

srcDirs = 'src/test/unit/java' 

como en su ejemplo, simplemente agrega otra carpeta de origen a las existentes.

cordiales, René

+0

Gracias, eso funciona .. segunda pregunta: ¿por qué no menos o excluir el trabajo? – vicsz

+0

Bueno, trato de explicarlo: todas las llamadas dentro del cierre de java –

+0

Bueno, algunas notas que pueden aclarar el motivo aquí: - srcDirs 'src/test/unit/java' en el gradle dsl es programáticamente una llamada de SourceDirectorySet # srcDirs (Object ... srcPaths) - SourceDirectory es del tipo FileCollection - Llamar a menos en FileCollection no modifica el archivo FileCollection dado, sino que crea y devuelve un nuevo FileCollection. Es por eso que "menos" no tiene ningún efecto aquí. - Simplemente hablado, excluye el trabajo de la misma manera que la llamada "menos" aquí. - Hay algunos todos en la interfaz SourceDirectorySet para limpiar algunas cosas aquí. No estoy seguro si esta limpieza será parte de 1.0 –

Cuestiones relacionadas