0
Gradle給我適合。我有一個build.gravle,它包含了java插件,我在其中構建了一個任務,生成一個屬性文件並將其放入build/classes目錄中。這一切都像一個冠軍。這是我的自定義任務。如何使Java插件類任務依賴於我自己的任務?
task generateBuildSignature << {
def whoami = System.getProperty('user.name');
def hostname = InetAddress.getLocalHost().getHostName();
def buildTag = System.env.BUILD_TAG ?: "dev"
ant.propertyfile(file: "${buildDir}/buildsignature.properties", comment: "This file is automatically generated - DO NOT EDIT!") {
entry(key: "version", value: "${project.version}")
entry(key: "buildTimestamp", value: "${new Date().format('yyyy-MM-dd HH:mm:ss z')}")
entry(key: "buildUser", value: "$whoami")
entry(key: "buildSystem", value: "$hostname")
entry(key: "buildTag", value: "$buildTag")
}
}
現在,我想這個任務集成到Java構建的生命週期,最好processResources後立即或類依賴的執行,但我在文件http://gradle.org/docs/current/userguide/java_plugin.html的第23章,這是不但清楚地知道如何讓我的任務進入通過java插件進入的任務的依賴鏈。任何建議爲剛剛起步的gradle用戶?
這將工作。我的問題是我立即在generateBuildSignature的任務聲明之前在我的build.gradle文件中使用了clases.dependsOn(generateBuildSignature)。這是產生「無法找到屬性'generateBuildSignature'任務':類'。」故障。切換這兩個build.gradle文件(任務generateBuildSignature << {...}然後classes.dependsOn(generateBuildSignature))得到一切按計劃工作。謝謝。 –
Gradle接受任務的多個表示。要依賴尚未聲明的任務,可以使用'classes.dependsOn(「generateBuildSignature」)'。 –