GradleでのScalaの差分コンパイル

0
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

gradleってscalaの差分コンパイルできないんよなぁ。 今までscalaのコード少なかったから気にならなかったんだけど、そろそろsbt行くべきかなぁ。

2019-08-29 17:13:41
kmizu @kmizu

@hrnmrnmh 差分コンパイルサポートされてるはずです。Scala 2.13だと github.com/gradle/gradle/… こういう問題が出てるようなので、sbtが無難なのは間違いないですが。

2019-08-29 17:43:49
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@kmizu うーん、、、じゃあなんでこんなに遅いんだろう scalaもバージョン2.12ですし

2019-08-29 17:48:34
kmizu @kmizu

@hrnmrnmh zincがオフになっているとかでしょうか?それ以外でも何かあるかもですが。

2019-08-29 17:59:04
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@kmizu 設定するとできるんですかねー なんかググってたらuseAntのパラメータがかつてあったみたいですね。

2019-08-29 18:28:36
kmizu @kmizu

@hrnmrnmh ただまあ、Scala書くのならsbt pluginのサポートとか色々あるsbtの方が断然おすすめではあります。

2019-08-29 18:41:26
Kenji Yoshida @xuwei_k

@kmizu @hrnmrnmh 自分も全然詳しくないけどサポートしてた記憶あったんですが、ぐぐったらなんかopenなissue出てきますね、どういう状態なんだろう・・・ github.com/gradle/gradle/… (すくなくともzinc自体には既に依存してるのは確認した)

2019-08-29 18:48:26
Kenji Yoshida @xuwei_k

@hrnmrnmh @kmizu あー自分が貼ったissueは、古い方のzincに依存している(詳細省くがzincには2種類ある)、ので、古い方はもうメンテされないし、新しい方に移行しないといけない、というissueっぽいですね (古い方でもインクリメンタルコンパイルはできた気はするけど、新しいほうがいろいろな面で改善などされてるはず)

2019-08-29 19:18:23
Kenji Yoshida @xuwei_k

@hrnmrnmh @kmizu 明示的になにか設定しないとデフォルトでは有効ではなさそう? あと、設定したとしても、古いzincの最後のリリースが2017年5月みたいなので、それ以降の2年以上のインクリメンタルコンパイラの改善の恩恵がまだ受けられない、という感じっぽいですね repo1.maven.org/maven2/com/typ… github.com/gradle/gradle/…

2019-08-29 19:35:14
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@xuwei_k @kmizu デフォルトは無効になってそうです。 gradle runて打つと毎回30秒前後かかります( ・ω・`)

2019-08-29 21:23:49
kmizu @kmizu

@hrnmrnmh @xuwei_k 一応、これでいけました。 github.com/kmizu/gradle-z… ただ、これは、.@xuwei_k さんがおっしゃってるように、「古い」zinc使ってるので新しいzincの恩恵色々受けられないことは覚悟する必要があります(差分コンパイルはできます)

2019-08-30 09:38:14
kmizu @kmizu

@hrnmrnmh @xuwei_k ちなみに、「古い」zincはcom.typesafeで始まるパッケージのやつで、これへの依存は、現在のgradle scala pluginの中にハードコードされているので、gradle scala pluginが対応してくれないとどうしようもなさそうではあります。

2019-08-30 09:39:49
kmizu @kmizu

@hrnmrnmh @xuwei_k 他の方法としては、issueで一部の人がいってたbloop scalacenter.github.io/bloop/docs/bui… 使う方法がありますが、bloopがどれだけいいのかは試したことがないのでわからないです(あと、これだと、マシンにbloop入れておかないといけないのが手間ですね)。

2019-08-30 09:49:00
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@kmizu @xuwei_k zincの記述僕の環境だとダメでした。 javax.xml.bind.DatatypeConverterが読み込めないと。 Java9で消し去られたやつですかねー。

2019-08-30 13:15:01
Kenji Yoshida @xuwei_k

@hrnmrnmh @kmizu はい。それはScala直接関係なくJava9で消えたやつ参照してると発生するやつなので、Java8に下げるか、別途依存追加する必要があるやつですね

2019-08-30 13:21:54
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@xuwei_k @kmizu zincの記述消すと通るのでzincから参照してるんですよねー

2019-08-30 13:36:52
kmizu @kmizu

@hrnmrnmh @xuwei_k なるほど。なにはともあれ、依存関係追加したらたぶん通る気がします。 stackoverflow.com/questions/5250… らへんみると、javax.xml.bind:jaxb-api, com.sun.xml.bind:jaxb-core, com.sun.xml.bind:jaxb-impl の3つの依存関係追加するといける気がします。

2019-08-30 13:45:04
Kenji Yoshida @xuwei_k

@kmizu @hrnmrnmh いや、少なくともzincを古い方の最新(ややこしい。つまり0.3.9から0.3.15)にすればそれ関係なくJDK11で通りますね travis-ci.org/xuwei-k/gradle… github.com/xuwei-k/gradle…

2019-08-30 13:46:40
Ohno λ 個人事業主になったけどめんどくさくなった人 @hrnmrnmh

@kmizu @xuwei_k コンパイル通るようになりましたー( ・∇・) がしかし24秒なので6秒短縮くらい…?

2019-08-30 14:46:45