build.gradle内でIntelliJのGroovyの補完を効かせる

f:id:earu:20220223173437p:plain エキサイト株式会社メディア開発の佐々木です。build.gradle内でIntelliJのGroovyの補完を効かせる方法です。

Gradleとは

Groovy製のビルドツールになります。Javaを始めAndroidC/C++でも使えるようです。モジュールの依存関係の解決やちょっとした処理をGroovyスクリプトで記述・実行できます。

build.gradle

下記の記述をpluginsの前に書き加えるのみになります。

buildscript{
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.codehaus.groovy:groovy-all:3.0.9'
    }
}

これで、IntelliJで補完が効くようにになります。

動作確認

実際のbuild.gradleのコードは下記になります。

buildscript{
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'org.codehaus.groovy:groovy-json:3.0.9'
    }
}

plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}


task sample() {
    doLast {
        sample();
    }
}

import groovy.json.JsonSlurper

def sample(){
    def json = new JsonSlurper().parseText('{"a":"b"}')
    println(json);
}

groovyを使用しているコードは下記になります。このコードで先程クラスパスを追加した部分を使っています。

task sample() {
    doLast {
        sample();
    }
}

import groovy.json.JsonSlurper

def sample(){
    def json = new JsonSlurper().parseText('{"a":"b"}')
    println(json);
}

実行結果は下記になります。

$ ./gradlew sample

> Task :sample
{a=b}

Javaのライブラリ等も使用可能なので、Shellだとちょっと面倒になってしまうみたいなときに、重宝します。

まとめ

Gradleは、Groovyでできているのでこの設定をしなくてもGroovyのコードは実行できるのですが、IDEの恩恵を受けられないので設定しています。Javaのライブラリ等も使用可能ですし、プラグインもサクッと作ることができます。どこかでプラグインの話も書こうかと思います。

最後に

エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。

カジュアル面談はこちらになります! meety.net

募集職種一覧はこちらになります!(カジュアルからもOK) www.wantedly.com