2011-07-20 17 views
32

Estoy intentando con Gradle la primera vez. Estoy intentando con un proyecto maven java compilar y crear un archivo jar. Se está recopilando y crear el archivo jar en el directorio de construcción/libs comoGradle: nombre de archivo jar en el complemento java

tronco -XXXVERSION-SNAPSHOT.jar

estoy corriendo fichero de construcción Gradle del directorio de tronco de este proyecto Java experto.

que desea obtener el nombre del proyecto (por ejemplo: proyecto 1) en el nombre de archivo del tarro, algo así como

proyecto 1 -XXXVERSION-SNAPSHOT.jar

en construcción/libs directorio. Por favor sugiera.

Respuesta

31

El nombre del proyecto predeterminado se toma del directorio en el que está almacenado el proyecto. En lugar de cambiar explícitamente el nombre del jar, debe establecer el nombre del proyecto para su compilación. Por el momento, esto no es posible dentro del archivo build.gradle. En su lugar, debe crear un archivo settings.gradle en su directorio raíz. Este archivo debe tener settings.gradle éste revestimiento incluye:

rootProject.name = 'project1' 
+0

Muchas gracias por la solución. Funcionó para mí También descubrimos que podemos usar 'doFirst' para jar y funcionó también. Entonces, ¿cuál es la mejor manera de lograr esto? – Chakri

+0

¿Qué quieres decir con "podemos usar doFirst para jar"? jar es una tarea gradle "normal", que se puede aumentar con cierres de acción personalizados a través de doLast y doFirst. –

+0

usando este fragmento también asegura que sus otras cremalleras, archivos maven, etc. tienen el nombre correcto, ya que todos dependen del nombre de su proyecto –

61

entorno Probar:

archivesBaseName = 'project1' 

o

jar.baseName = 'project1' 

Aquí está la solución completa:

trunk 
˪ build 
    ˪ libs 
    ˪ project1-1.0-SNAPSHOT.jar 
˪ build.gradle 

build.gradle es:

apply plugin: 'java' 
apply plugin: 'maven' 

archivesBaseName = 'project1' 
version = '1.0-SNAPSHOT' 
group = 'example' 

Produce los ZIP, POM y JAR correctos.

+0

Gracias por la respuesta. Intenté estas dos opciones, sin suerte. – Chakri

+0

Solo para mantener la discusión completa: la primera versión funciona y también produce cremalleras correctas, archivos maven, etc. Lo encuentro también más elegante. Editaré mi respuesta para proporcionar una secuencia de comandos completa. –

+0

Sí, esto también funciona, pero no veo los POM y JAR generados en el repositorio. Estoy usando 'uploadArchives' para publicarlo en maven artifactory después de declarar 'repositorios'. – Chakri

1

Si usted tiene algún submobule, se puede utilizar en build.gradle (por frasco)

configurations { 
    jar.archiveName = 'submodule-jar.jar' 
} 
Cuestiones relacionadas