0
這是一個在IntellJ上空新創建的Gradle/Groovy項目上設置build.gradle的示例。我在兩處使用projectDir:在任務定義和任務類定義中。 IntelliJ將第一次使用顯示爲不正確 - 無法解析符號。它認爲第二次使用是正確的。在Gradle腳本中,projectDir不可見於任務類
group 'test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'groovy'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
task ProjectDirTest(type: ProjectDirTestClass){
println " -------------- $projectDir from task"
}
class ProjectDirTestClass extends DefaultTask {
@TaskAction
def greet() {
println " -------------- $projectDir from class"
}
}
configure(ProjectDirTest) {
group = 'ProjectDirTest'
description = 'ProjectDirTest'
}
但是,如果我運行任務,第一的println工程確定,用正確的輸出:
12:55:41: Executing external task 'ProjectDirTest'...
-------------- C:\Users\543829657\testWorkspace from task
:ProjectDirTest FAILED
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\543829657\testWorkspace\build.gradle' line: 28
* What went wrong:
Execution failed for task ':ProjectDirTest'.
> Could not get unknown property 'projectDir' for task ':ProjectDirTest' of type ProjectDirTestClass.
但是,正如你看到的,在第二次的println有一個問題 - 搖籃不看變量projectDir
。
我已經習慣了不正確的IntelliJ標記錯誤。但是,如何讓任務類在運行時查看projectDir
變量?
在真正的任務類中,我也不能使用exec()命令 - Gradle也沒有看到它。