2012-10-05 11 views
7

Sto cercando di creare un file di guerra con Gradle, ma sto avendo un problema escludendo una directory e includendo un'altra che ha gli stessi nomi, ma diverse directory madri.Gradle: War Task ha conflitti inclusi/esclusi

Si prega di notare nel primo esempio di codice di seguito che nessuno dei css/ directory sono state incluse in finale war lima - presumo perché Gradle pensa che io voglia escludere qualsiasi directory denominatacss/ indipendentemente dal suo percorso assoluto.

In pratica, voglio escludere src/main/webapp/css e includere build/tmp/css perché quest'ultimo contiene il codice miniato. Come posso raggiungere questo obiettivo? Ho provato a specificare un percorso assoluto in vari modi, ma non ho avuto alcun successo.

war { 
    dependsOn minify 
    from('build/tmp/') { include ('css/') } 
    exclude('WEB-INF/classes/', 'css/') 
} 

Se non escludo css/ in questo modo:

war { 
    dependsOn minify 
    from('build/tmp/') { include ('css/') } 
    exclude('WEB-INF/classes/') 
} 

allora il risultato è che sia il codice minified e non è incluso minimizzato.

risposta

5

io non sono sicuro perché si esclude WEB-INF/classes/css invece di src/main/webapp/css nel vostro build.gradle, ma la copia dei file CSS minified al posto di quelli originali si ottiene:

apply plugin: 'war' 

war { 
    // dependsOn 'minify' 

    from 'src/main/webapp' 
    exclude 'css' // or: "exclude 'WEB-INF/classes/css'" 

    from('build/tmp/css') { 
    include '**/*.css' 
    into 'css' // or: "into 'WEB-INF/classes/css'" 
    } 
} 
+0

Lo scopo di 'escludere ('WEB -INF/classes/',' css/') 'è quello di escludere entrambe le directory in realtà. 'css /' non è all'interno di 'classes'. Oltre a ciò il 'in 'css'' sembra fare il trucco. – david

Problemi correlati