keyskey / ktknowledge_api

Sample implementation of Kotlin/SpringBoot/GraphQL Kotlin/Ktorm/Kotest

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compilation failed: org.gradle.internal.exceptions.LocationAwareException で急にビルドできなくなったときのメモ

keyskey opened this issue · comments

commented

起こったこと

Valiktorを依存に追加して色々実装してからビルドし直したら以下のエラーが出てビルドできなくなった。
Compilation failed: org.gradle.internal.exceptions.LocationAwareException
(IDEA再起動したせいでエラー消えちゃったけどclass not found系のエラーもでてた)

やったこと

そもそも今までbuild.gradleに書いているKotlinのバージョン(1.5.31)とsdkmanで入れてプロジェクト内で使っているKotlinのバージョン(1.5.21)が違っていたし、JVMのバージョンも16にしていたけどビルドターゲットは11だった、挙句gradleもgradle-wrapper-propertiesのdistributionUrlで指定されているのは7.2なのにプロジェクト配下に配置されていたのは7.1.1と無茶苦茶な状態になったいたので、その辺の差異をまずなくそうとした。
sdkmanでKotlin 1.5.31, gradle 7.2, Java 11を入れて sdk env init で生成した.sdkmanrc ファイルにそれぞれバージョンを書き、更にsdk config でsdkman_auto_env をtrueにし、プロジェクトを切り替えるとsdkmanrcで指定したバージョンに自動的に切り替わるようにした。
これでIDEA再起動してみても特にエラーに変化なし。

やはりValiktorを入れたことが何かしら悪さしていそうなので、build.gradleからValiktor関係の記述を全て消し、実装箇所も全部コメントアウトして再ビルドした。するとエラーが消えてビルドできるようになった。やはり原因はValiktorらしい。
何がマズイのかピンと来なかったのでひとまずValiktorのGitHubリポジトリに入っているSpringBoot (Spring Webflux)での実装例 を見た。すると依存関係には valiktor-core は入っておらず、 valiktor-spring:valiktor-spring-boot-starter だけが含まれていた(ref)。どうもこれが怪しそうだったのでvaliktor-core をbuild.gradle から消して見たらビルドが通った。これにて一見落着。