私はMyPlugin
というカスタムプラグインを持っており、MyTask
というカスタムタスクが含まれています。私は作りたいMyTask
dependsOn compileJava
。私はMyTask.dependsOn(compileJava)
を与えようとしましたが、それはTask called 'MyTask' is not existing
と言います。それを行う方法はありますか?Gradleカスタムプラグインはシステムタスクに依存します
MyPlugin.java
public class MyPlugin implements Plugin<Project> {
public static final String TASK_NAME = "MyTask";
@Override
public void apply(Project project) {
project.getExtensions().create(TASK_NAME, MyExtension.class);
project.getTasks().create(TASK_NAME, MyTask.class);
}
}
MyTask.java
public class MyTask extends DefaultTask {
private MyExtension extension;
@TaskAction
public void myTask() {
Project project = getProject();
extension = project.getExtensions().findByType(MyExtension.class);
PropertyManager propertyManager = new PropertyManager(project, extension);
propertyManager.setProperties();
System.out.println(extension.getValue());
}
MyExtension.java
public class MyExtension {
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
build.gradle私の知る限りMyTask
、あなたのタスクはmyTask
と呼ばれていない見ることができるよう
apply plugin: 'maven'
apply plugin: 'groovy'
apply plugin: 'java'
apply plugin: 'com.jfrog.bintray'
sourceCompatibility = 1.8
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile gradleApi()
}
repositories {
mavenCentral()
}
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
}
}
task copyLibs(type: Copy) {
from configurations.runtime
into "$projectDir/libs"
}
MyTask.dependsOn(copyLibs) //not working
MyTask.dependsOn(compileJava) //not working
プラグインを適用してタスクを設定する場所に 'build.gradle'ファイルを追加できますか? – Michael