gradle

gradleのビルドスクリプトで外部ライブラリを使う

概要

gradleのビルドスクリプトのプログラムで外部ライブラリを使う方法です。
ライブラリをプロジェクト自体で使う場合の dependencies に設定するのとは違います。

経緯

gradleでビルドするとき、最終的なwarファイルやapkファイルを作る直前にソースコードの一部を編集した上でビルドしたい場合や、ビルド後にとあるサーバーと通信して成果物をアップしたい時に、ビルドスクリプトをgradleファイル内に書くと思いますが、デフォルトで用意されているgroovy、またはjavaのライブラリでは書くのが面倒臭く、外部ライブラリを使いたかった。

方法

import org.json.JSONArray
import org.json.JSONObject
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import org.xmlpull.v1.XmlPullParserFactory

buildscript {
    repositories { mavenCentral() }
    dependencies {
        classpath 'org.json:json:20090211'
        // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
        classpath group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5'
    }
}

ポイントは、buildscript の dependencies に classpath で設定する(設定値はhttps://mvnrepository.com/ からコピーできる値でよい)のと、importを自前で書くということです。
これでimportしたクラスを使えます。

↑本当に普通な内容でした。。。

ハマったのは、classpath で設定しただけじゃ、自動ではコード補完候補に出てこないということでした。
java.ioとかであれば、自動で候補に出てくるし選んだら自動でimportも補完してくれるので、そのノリで書いたらダメでした。