2016-03-27 76 views
0

我想在插件中創建一個任務,該任務從Android插件for gradle擴展「compileDebugJavaWithJavac」任務。Gradle:創建一個擴展compileDebugJavaWithJavac任務和Android項目的任務

這是代碼,我有我的自定義插件

project.task('compileAllJava', type: project.tasks.getByName('compileDebugJavaWithJavac')) << {} 

內當我嘗試應用此插件並執行此任務它給了我這樣的錯誤發生的配置項目this`A問題「:應用程序」。

org.gradle.api.tasks.compile.JavaCompile_Decorated不能轉換到java.lang.Class`

我是不是正確的擴展任務?還是甚至有可能在我自己的插件中擴展這個任務?

+0

我不知道你要在這裏完成的。錯誤消息提示'type'需要是一個Class類型的對象,但是你已經給它一個任務。你是否試圖修改依賴鏈? –

+0

我只是想創建一個compileDedugJavaWithJavac任務的完全副本的任務 – owentdoyler

回答

0

您需要檢查何時將compileDebugJavaWithJavac添加到任務收集中。試試這個

tasks.whenTaskAdded { task -> 
    if (task.name.equals("compileDebugJavaWithJavac")) { 
    project.task('compileAllJava', type: JavaCompile, dependsOn: task) << { 
     // your code here 
    } 
    } 
} 

檢查該鏈接查看所有任務類型

https://docs.gradle.org/current/dsl/