解決してないので、どなたか原因や解決策を知っていたら教えてください。
とあるJavaプロジェクトで、defaultTasksを定義しているんだけど、Eclipseからだとタスク実行の方がやりやすいと。
で、タスクを作ってその中からタスクを呼ぼうとしているんだけど、タイトル通りJavaプラグイン関連のタスクが呼べない。
例えば、
% gradle init --type java-library
で作ったプロジェクトのbuild.gradleを最低限の記述にして、タスクを追加してみる。
apply plugin: 'java'
repositories {
jcenter()
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
testCompile 'junit:junit:4.12'
}
task('noJava') << {
println "no java task run"
}
task('run') << {
project.tasks.getByName('noJava').execute()
}
task('runJava') << {
project.tasks.getByName('build').execute()
}
この時、runタスクでnoJavaタスクは呼べるんだけど、runJavaタスクでbuildは呼べない。
--debugしてみると、buildタスクにはActionがないみたいなログが出ている。
なんか、Gradleの初歩的なことを見落としているような気がしているんだけど、割りと簡単なことができなくて困ってる…。
↓実行ログ
17:26:37.493 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':runJava'
17:26:37.493 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':runJava' is up-to-date
17:26:37.493 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':runJava' (up-to-date check took 0.0 secs) due to:
Task has not declared any outputs.
17:26:37.493 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':runJava'.
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Transitioning model element 'tasks.build' from state Discovered to Initialized
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Running model element 'tasks.build' rule action tasks.addPlaceholderAction(build)
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Mutating tasks.build using tasks.addPlaceholderAction(build)
17:26:37.509 [DEBUG] [org.gradle.model.collection.internal.BridgedCollections] Ignoring element 'tasks' added to 'build' after it is closed.
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Transitioning model element 'tasks.build' to state Created.
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Transitioning model element 'tasks.build' to state DefaultsApplied.
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Running model element 'tasks.build' rule action copyToTaskContainer
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Mutating tasks.build using copyToTaskContainer
17:26:37.509 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Transitioning model element 'tasks.build' to state Initialized.
17:26:37.509 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':build'
17:26:37.509 [INFO] [org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter] Skipping task ':build' as it has no actions.
17:26:37.509 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':build'
17:26:37.509 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':runJava'
17:26:37.509 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :runJava (Thread[main,5,main]) completed. Took 0.016 secs.