Groovy 渐变扩展任务/基于任务创建任务

Groovy 渐变扩展任务/基于任务创建任务,groovy,gradle,build.gradle,Groovy,Gradle,Build.gradle,Groovy新手,gradle。我想扩展以下任务(java插件的一部分): 扩展任务将具有 archiveName = 'PJ-latest.jar' destinationDir = project.getRootDir() 在典型的Java中,我会调用super,但我不确定如何在gradle中实现它。我最好的尝试是扩展Jar类,添加与Jar相同的参数以及依赖项: task assembleCompiler(type: Jar){ dependsOn compileJava, pro

Groovy新手,gradle。我想扩展以下任务(java插件的一部分):

扩展任务将具有

archiveName = 'PJ-latest.jar'
destinationDir = project.getRootDir()
在典型的Java中,我会调用
super
,但我不确定如何在gradle中实现它。我最好的尝试是扩展
Jar
类,添加与
Jar
相同的参数以及依赖项:

task assembleCompiler(type: Jar){
    dependsOn compileJava, processResources, classes

    archiveName = 'PJ-latest.jar'
    destinationDir = project.getRootDir()

    from { configurations.runtime.collect { zipTree(it) } }

    manifest.attributes( 'Implementation-Title': archivesBaseName,
            'Implementation-Version': version,
            'Main-Class': mainClassName,
            'Built-By': POM_DEVELOPER_NAME
    )
}

您必须单独配置第二个任务,就像您已经做的那样。如果您想共享此代码,请将其转换为插件。

这不清楚;为什么你不能直接把这些东西放到
jar
闭包中呢?@OliverCharlesworth我想要一个包含两个不同变量的第二个任务
task assembleCompiler(type: Jar){
    dependsOn compileJava, processResources, classes

    archiveName = 'PJ-latest.jar'
    destinationDir = project.getRootDir()

    from { configurations.runtime.collect { zipTree(it) } }

    manifest.attributes( 'Implementation-Title': archivesBaseName,
            'Implementation-Version': version,
            'Main-Class': mainClassName,
            'Built-By': POM_DEVELOPER_NAME
    )
}