🐘

Micronautでgradleタスク一覧が取得できなくなったときの対応

2023/11/07に公開

いきさつ

普段IntelliJを使って開発していて、 gradleパネルの中にtasksが見当たらなくなった。

gradlew tasks でタスク一覧を取得しようとするとエラーになる。

./gradlew tasks      
> Task :tasks FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':tasks'.
> Could not create task ':api:collectReachabilityMetadata'.
   > Cannot set the value of task ':api:collectReachabilityMetadata' property 'metadataService' of type org.graalvm.buildtools.gradle.internal.GraalVMReachabilityMetadataService using a provider of type org.graalvm.buildtools.gradle.internal.GraalVMReachabilityMetadataService.

原因

Micronautのメジャーバージョンを 2 -> 3に挙げた際に起こっていた?ようだった。

plugins {
    id "io.micronaut.application" version "3.9.4"
}

io.micronaut.application にはGraalVM関連のタスクが含まれるようになる。
https://micronaut-projects.github.io/micronaut-gradle-plugin/latest/#_micronaut_application_plugin

これにより、このままビルドを行うには、GraalVMのバイナリにPATHを通す必要があった。

対応

io.micronaut.minimal.application を利用する。
https://micronaut-projects.github.io/micronaut-gradle-plugin/latest/#_individual_plugins

このpluginにはGraalVMを利用するtaskが含まれておらず、ビルドが成功する。

plugins {
    id "io.micronaut.minimal.application" version "3.9.4"
}

Discussion