Cómo ejecutar una tarea de Gradle con diferentes parámetros
Me gustaría definir una tarea en gradle (llamadagen
) que ejecuta la tarea gradlejar
pero con un valor fijo parabaseName
. También quiero la tarea originaljar
estar disponible después
Mi problema es que no puedo transferir la configuración de manifiesto.
Estoy cansado
def mainFile = 'com.so.proj.App'
def filename = 'something'
jar {
baseName filename
manifest {
attributes 'Main-Class': mainFile
}
}
task gen (type: Jar) {
description "Generates JAR without version number."
doFirst {
//archiveName = jar.baseName + "." + extension
archiveName = filename + ".jar"
manifest {
attributes 'Main-Class': mainFile
}
}
}
Pensé que estoy redefiniendo elJar
tarea utilizando otros valores para archiveName y manifest.
Cuando se ejecuta./gradlew jar
Se genera un archivo JAR ejecutable.
Cuando se ejecuta./gradlew gen
Se genera un archivo jar. Desafortunadamente cuando intenta ejecutar el programa usandojava -jar build/libs/something.jar
Me sale el mensaje de error:
java -jar build / libs / something.jar
Error: Could not find or load main class com.so.proj.App
¿Qué estoy haciendo mal? Simplemente quiero ejecutar la tarea jar con diferentes parámetros (sin configurar la tarea jar en sí, pero ejecutando un alias). ¿Y qué está haciendo el código que escribí (no obtengo un error al ejecutar la tarea. Pero, ¿qué está haciendo?)