LoginSignup
2
2

More than 5 years have passed since last update.

[未解決] GradleのJavaプラグインタスクをbuild.gradle内でexecuteできない

Posted at

解決してないので、どなたか原因や解決策を知っていたら教えてください。

とある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.
2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2