【发布时间】:2020-09-13 19:34:25
【问题描述】:
在下面的语法中:
plugins({
id('application')
id 'java'
id('com.github.johnrengelman.shadow').version('4.0.1')
})
allprojects(
{
apply(plugin: 'application')
apply(plugin: 'java')
apply(plugin: 'com.github.johnrengelman.shadow')
repositories({
mavenCentral()
})
}
....
task copyDeps(type: Copy) {
from (configurations.runtime + configurations.testRuntime) exclude '*'
into '/tmp'
}
)
我的理解是,
apply() 方法是传递键值对plugin: 'application',其中键是plugin & 值是'application'
从apply()方法的语法方面来看,plugin: 'application'不是可读的语法:
1) 我如何理解这个语法apply(plugin: 'application')? plugin: 'application' 是通过方法apply() 传递的String 类型的参数吗?
2)
下面的语法
task copyDeps(type: Copy) { // Line 54
from (configurations.runtime + configurations.testRuntime) exclude '*'
into '/tmp'
}
写成
tasks.create('copyDeps', Copy, {
from(configurations.runtime + configurations.testRuntime).exclude('*')
into(buildDir)
}
)
但给出错误:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/../build.gradle' line: 54
?
【问题讨论】:
标签: java gradle groovy closures