2013-09-23 14 views
7

Sto provando a denominare l'artefatto che viene creato da gradle. Guarda questo build.gradle:L'uso di archiviBaseName in un progetto gradle non ha alcun effetto

archivesBaseName='this_is_ignored' 
apply plugin: 'groovy' 
archivesBaseName='this_is_also_ignored' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'org.codehaus.groovy:groovy-all:2.+' 
} 

Ho anche provato a gradle.properties:

archivesBaseName=`this_is_ignored_too` 

In ogni caso ./gradlew build genera un file .jar in base alla cartella in cui si trova il progetto (che a quanto ho capito è project.name , Speravo solo di scavalcarlo con archivesBaseName).

In altre parole, io voglio:

~/gradle-helloworld > ./gradlew build 

per generare this_is_ignored.jar, ma è la generazione di gradle-helloworld.jar invece.

Qualche idea?

+6

Se si imposta 'archivesBaseName' prima di applicare il plug-in, verrà introdotta una proprietà dinamica (che fornisce un avviso di ritiro). Questa proprietà dinamica ombreggia quindi quella introdotta dal plugin, motivo per cui anche il secondo compito non ha l'effetto desiderato. La soluzione è di impostare solo la proprietà * dopo * l'applicazione del plugin. –

risposta

4

(Turning Peter 's commento in una risposta CW.)

Se si imposta archivesBaseName prima di applicare il plugin, si introduce una proprietà dinamica (che dà un avvertimento disapprovazione). Questa proprietà dinamica ombreggia quindi quella introdotta dal plugin, motivo per cui anche il secondo compito non ha l'effetto desiderato. La soluzione consiste nel impostare la proprietà solo dopo l'applicazione del plug-in.

Problemi correlati