【问题标题】:Gradle extend task / Create task based on taskGradle 扩展任务/基于任务创建任务
【发布时间】:2014-09-15 22:56:29
【问题描述】:

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

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

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

扩展任务将有

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 我想要具有两个不同变量的第二个任务

标签: groovy gradle build.gradle


【解决方案1】:

您必须像之前那样单独配置第二个任务。如果你想分享这个代码,把它变成一个插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多