LoginSignup
3
1

More than 3 years have passed since last update.

Android Jetpackのリリース前のバージョンを使う方法

Last updated at Posted at 2019-08-08

概要

先日RoomのFlow対応がマージされていたりして、いち早く新しいバージョンを使いたいことと思っていました。
https://android-review.googlesource.com/c/platform/frameworks/support/+/944458

2.2.0-alpha02.txtというファイルをいじっているので、2.2.0-alpha02にてリリースされそうだなと思いみていたら面白そうなリポジトリを発見しました。
https://android.googlesource.com/platform/prebuilts/androidx/internal/+/refs/heads/androidx-master-dev
ここを見ていくとここに最新バージョン(リリース前)のaarが上がっているようです。
(internalになっていますが、apache licenseのファイルおいてあるので大丈夫なはず。。)
これを使ってみようと思います。

手順

androidx-master-devブランチの最新のコミットのみとってきたいので以下のように取得します。

git clone --depth 1 -b androidx-master-dev https://android.googlesource.com/platform/prebuilts/androidx/internal

そしてpom.xmlの中でのversion指定が<version>[1.1.0-alpha02]</version>のように[]で囲まれてしまっているのでそれを外します

cd internal
find . -name "*.pom"|xargs sed -i -e "s/<version>\[\(.*\)\]<\/version>/<version>\1<\/version>/"

使いたいAndroidプロジェクトのbuild.gradleで、そしてクローンしたリポジトリのパスをrepositoriesで指定します。(buildScriptの方と、それぞれのプロジェクトの方両方で行います)

    repositories {
        maven {
            url "/Users/takahirom/git/internal" // コピペではなく自分のパスへ
        }

そしてMatching repositories to dependenciesの機能を使って、このinternalリポジトリに含まれるものをGoogleのリポジトリから取得しないようにします。

        google().content{
            excludeGroupByRegex("androidx\\.(?!databinding)(?!constraintlayout).*")
        }

これでdependencyブロックにて使いたいバージョンの依存関係を使うことができました!

(androidx.room:room-ktx:2.2.0-alpha02RoomのFlow対応も使えました! :tada: )
(Roomで自動生成されたコード)
image.png

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1