lombokとdatabinding

はじめに

とか新規ウイザードに近い構成のプロジェクトでの話。

Google APIsを指定するdata-binding で生成エラーになることが有り*1

動作環境

  • macOS Sierra
  • 16G
  • HDDタイプのiMac
  • AS 3.0-Beta1
  • gradle plugin 2.3.3
  • gradle runtime-4.1

環境設定

IDE

  • lombok pluginを入れる
    • IDE的にgetter/setterを認識してくれない
  • build.gradle に書いているだけだと
    • buildは通るのに、IDEは真っ赤 とかになる

build.gradle側

  • app/build.gradle
provided "org.projectlombok:lombok:1.16.18"

公式の compileOnly 記述でしているすると何故かエラーに*2

  • app/lombok.config (別途新規追加)
lombok.addGeneratedAnnotation = false

状況

GUI側の lombok plugin を入れるまで

  • compile は通るけどIDEは真っ赤

だったりしていたので、やはり実行タイミング違うのかなー。


gradle 2.3.3 不具合?

  • layoutやリソース
    • 変更 or 差替反映を中々取り込んでくれない
    • 追加 or 削除はOK

ようはInstantRunを使わなくても、勝手にbuild-cacheを利用、ソレがちゃんと変更監視できていない

状態。

gradle plugin 2.3.2 までは、build-cacheを暗黙で利用してなかったようなので、

このバージョンで止めておいたほうが良い?

リリースノートにいつものごとく変更箇所書いてないけど*3

  • build-cache を使って高速化 はいいとして
  • AS 2.3.3上だと
    • 補完index作成中にIDEがかなりの頻度で固まる

な状況だったりする。

AS 3.0-Beta以降で過去互換を完全に捨てる のはいいんだけど、まともに動くようにしてからにして欲しい。

傍目に見てると

「AS3.0の変更をとりあえずAS2.3.3にも取り込んでおいたよ。感謝してよね!」

って余計なツンデレ対応に見える

今回の話は、プロジェクト内に入っているlibrary projectの話だけど

local.aarの場合は gradle plugin 2.3.2から同じ問題が混入されていたっぽい

*1:APT変換周りが安定しない

*2:3.0 pluginベースでも同じ

*3:few bug fixってなんだ??<苦笑