【问题标题】:Gradle: change property of task from a pluginGradle:从插件更改任务的属性
【发布时间】:2018-02-24 08:42:36
【问题描述】:

这是尽可能基本的......但我在这里或在 gradle.org 或一般情况下都没有找到答案。 NB Gradle 4.4.1、Groovy 2.4(由 Eclipse-Gradle 使用)或 2.6(命令行)。 Java 8。

在我的 build.gradle 中,我有 application 插件并设置了主类:

apply plugin: 'application'
mainClassName = "core.ConsoleHandler"

...包括这个插件会添加 2 个“依赖任务”(如果这是正确的术语:即 build 现在“依赖”它们):taskZiptaskTar

Here 我们看到taskZip 的类型是Zip... 并查找Task here 的子类的文档,我们看到Task 的属性之一是destinationDir... 即 .zip 文件的最终位置。

我要做的就是将其设置为特定目录。

我已经尝试过(在 build.gradle 中)

task application.taskZip { 
    destinationDir = 'D:/bobble'
}

taskZip { 
    destinationDir = 'D:/bobble'
}

destinationDir = 'D:/bobble'

这些都会产生致命错误。我该怎么办?

【问题讨论】:

    标签: gradle plugins configuration


    【解决方案1】:

    这是distZip 不是taskZip

    apply plugin: 'application'
    distZip { 
        destinationDir = file('D:/bobble') 
    }
    

    【讨论】:

    • 我是个白痴……难怪我有问题!我想知道是否要删除这个问题......但对我来说,你应该得到积分!我正在考虑不要删除,因为即使我放了“distZip”我仍然不会知道file( ... )
    • (虽然放置字符串的错误信息当然会给你一个线索......)
    【解决方案2】:

    destinationDir 接受File 参数

    尝试类似的方法:

    tasks.withType(taskZip) {
        destinationDir = file("D:/bobble")
    }
    

    【讨论】:

    • 你不需要在 Gradle 中自己构造File 对象,而是使用file(...) 方法。
    猜你喜欢
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多