Como executar uma tarefa Gradle com parâmetros diferentes

Eu gostaria de definir uma tarefa no gradle (chamadagen) que executa a tarefa gradlejar mas com um valor fixo parabaseName. Eu também quero a tarefa originaljar para estar disponível posteriormente.

Meu problema é que não consigo transferir a configuração do manifesto.

Eu cansei, por exemplo

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
        }
    }
}

Eu pensei que estava redefinindo oJar tarefa usando outros valores para archiveName e manifest.

Ao executar./gradlew jar um arquivo JAR executável é gerado.

Ao executar./gradlew gen um arquivo jar é gerado. Infelizmente, ao tentar executar o programa usandojava -jar build/libs/something.jar Eu recebo a mensagem de erro:

java -jar compilação / libs / something.jar

Error: Could not find or load main class com.so.proj.App

O que estou fazendo errado? Eu simplesmente quero executar a tarefa jar com parâmetros diferentes (sem configurar a tarefa jar em si, mas executando um alias). E o que o código está fazendo que eu escrevi (não recebo um erro ao executar a tarefa. Mas o que está fazendo?)

questionAnswers(1)

yourAnswerToTheQuestion