我在將其他屬性傳遞給gradle任務時遇到問題。這是我的構建文件將額外屬性傳遞給Gradle任務的問題
buildscript {
repositories {
}
ext {
dir = ''
}
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'groovy'
group = 'group'
version = 'version'
sourceCompatibility = 1.8
targetCompatibility = 1.8
task wrapper(type: Wrapper) {
gradleVersion = '3.4'
}
repositories {
}
dependencies {
compile gradleApi()
compile localGroovy()
}
正如你所看到的,我有一個額外的屬性爲dir初始化爲''。現在,這裏是我的任務
class MyTask extends DefaultTask {
File myDir = project.dir
@TaskAction
public void action() {
}
}
我的插件
class MyPlugin implements Plugin<Project> {
@Override
def void apply(Project project) {
project.tasks.create("myTask", MyTask)
}
}
而這個單元測試
public class TestPlugin {
@Test
public void testPlugin() {
Project project = ProjectBuilder.builder().build();
project.getPlugins().apply(TestPlugin.class);
Assert.assertTrue(project.getProject().getTasks().findByName("myTask") instanceof MyTask);
}
}
現在,當我運行測試,它顯示了錯誤,它找不到目錄屬性。
Caused by: groovy.lang.MissingPropertyException
我錯過了什麼嗎?
爲什麼你將插件類傳遞給'project.tasks.create'? –
@OliverCharlesworth。複製時發生錯誤。修正了它 – user12331