repositories にある jcenter の指定を依存を含む全てのプロジェクトから削除する

いつの間にか jcenter が完全に死んでしまったわけですが、依存ライブラリの build.gradle の中で jcenter を指定されてしまって、うっかり jcenter から jar をダウンロードしようと Gradle が頑張ってしまうケースがありました。

さすがに jcenter にしか無いライブラリなんて無いだろうということで、自分のプロジェクトから allproject に向けて jcenter を全て削除するような仕組みを build.gradle に書いてみたので共有いたします。

root の方の build.gradle (app 配下じゃないもの) で、以下のように記載すれば OK

allprojects {
    getRepositories().removeIf({
        it instanceof MavenArtifactRepository &&
                it.getUrl().getHost() == 'jcenter.bintray.com'
    })
}

あとは、 ./gradlew --refresh-dependencies を実行するか、あるいは ~/.gradle/caches あたりを全削除してビルドが通るかやってみると良いと思います。

もし jcenter にしか無い依存ライブラリがあったら、あきらめて jar とかを自分のリポジトリで管理するしか無いような気がします。