如何在自定义Gradle插件中获取$ project.version? [英] How to Get $project.version in Custom Gradle Plugin?
本文介绍了如何在自定义Gradle插件中获取$ project.version?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在定制gradle插件中, project.version
似乎总是未指定
。为什么以及如何检索自定义插件(类)中的 project.version
?
例如:
apply plugin:'java'
apply plugin:MyPlugin
version =1.0.0
println在构建文件:$ project.version
class MyPlugin implements Plugin< Project> {
public void apply(Project project){
project.task('myTask'){
printlnIn plugin:$ project.version
}
}
$ / code>
打印出来:
<> code>%; gradle -q myTask
在插件中:未指定
在构建文件中:1.0.0
<
解决方案
您在调用<$ c $之后设置属性c> apply
如果您移动
version =1.0.0
到行前
apply plugin:MyPlugin
它应该工作
编辑
在Peter的答案之后,你可以看到这也适用于:
apply plugin:'java'
apply plugin:MyPlugin
version =1.0.0
println在构建文件中:$ project.version
class MyPlugin实现插件< Project> {
public void apply(Project project){
project.task('myTask'){
project.gradle.projectsEvaluated {
printlnIn plugin:$ project.version
}
}
}
}
延迟对 $ project.version
的评估,直到构建完成评估为止。
Within a custom gradle plugin the project.version
seems to always be unspecified
. Why and how to retrieve the project.version
within a custom plugin (class)?
For Example:
apply plugin: 'java'
apply plugin: MyPlugin
version = "1.0.0"
println "In build file: $project.version"
class MyPlugin implements Plugin<Project> {
public void apply(Project project) {
project.task('myTask') {
println "In plugin: $project.version"
}
}
}
Prints out:
%> gradle -q myTask
In plugin: unspecified
In build file: 1.0.0
Besides the how I really would like to know the why?
解决方案
You set the property after you call apply
If you move
version = "1.0.0"
To before the line
apply plugin: MyPlugin
It should work
Edit
Following Peter's answer, you can see that this works also:
apply plugin: 'java'
apply plugin: MyPlugin
version = "1.0.0"
println "In build file: $project.version"
class MyPlugin implements Plugin<Project> {
public void apply(Project project) {
project.task('myTask') {
project.gradle.projectsEvaluated {
println "In plugin: $project.version"
}
}
}
}
To delay the evaluation of $project.version
until evaluation of the build is complete
这篇关于如何在自定义Gradle插件中获取$ project.version?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文