sbt で自動生成したコードが source の jar に含まれない件

0
Kenji Yoshida @xuwei_k

sbtでビルド時に生成するコードは「hoge-src.jar」の中に含まれないという挙動なのだが、意外だったので質問してみた https://t.co/r62NE3eq そもそもsrcのjarって何のためにリポジトリ上に挙げるのか真面目に考えたことないというか調べたことないが

2012-11-29 22:02:47
Kenji Yoshida @xuwei_k

https://t.co/uE0CSCCz maven でも plugin で似たような仕組みある気がするけど、 maven の場合どうなってるんだろう、誰か maven 詳しい人教えて

2012-11-29 22:04:11
hito_asa @hito_asa

@xuwei_k srcのjarあるとIDEユーザーが幸せになるよ。

2012-11-29 22:10:27
Kenji Yoshida @xuwei_k

.@hito_asa それが主な理由だとしたら、ビルド時に生成したコードも含まれるべきですよね?例えばScalazでここ https://t.co/7gJMzaY6 で生成したコードが、(sbtのデフォルトの挙動では)srcのjarには含まれないみたいなんですが

2012-11-29 22:13:17
hito_asa @hito_asa

@xuwei_k そですね。バイトコードと対応してないものが落ちてきても困ります。

2012-11-29 22:16:16
Kenji Yoshida @xuwei_k

sbtのMLへの自分の投稿 https://t.co/r62NE3eq 反応ないなー。前にもこんなことあって誰からも反応なかったような。ML流量多すぎるから、開発者側の人が読んでない可能性あるよなー。いっそのことgithub上のissueかpull reqにしたほうがいいだろうか

2012-11-30 08:45:17
Yasushi Abe @yasushia

@xuwei_k 自動生成物はパッケージに含めないポリシーなのはわかりますけど、javaのsrcパッケージだとないと意味無いですね。IDEで参照できないし。pullreqしていいとおもいます

2012-11-30 09:29:14
∃ugene 🥙yokot∀ @eed3si9n_ja

@xuwei_k この手順でこうやったらこうなってすごく困ってるんだけど、こういう代替案のほうが良くないか? ぐらいまでお膳立てして極力読む方の労力を下げないとなかなか喰いついてこないと思います。why だけだと読む方が色々調べなきゃならない。

2012-11-30 09:29:46
Yasushi Abe @yasushia

まあでも自動生成Javaソースは人が読むものじゃないってのはあるか。bytecode変換系とかどうにもならないし。Scalaは今の所22個の生成がメインだからいいけど

2012-11-30 09:35:21
Yasushi Abe @yasushia

.jarと-src.jarが対応すべきなのか、ソースはコンパイルできるべきか、どっちなのかな。

2012-11-30 09:42:33
∃ugene 🥙yokot∀ @eed3si9n_ja

@yasushia @xuwei_k source jar の存在理由がよく分かってませんが、debug のためなら compile:sources 丸ごとか、OSS compliance なら *.sbt 含む自動生成のネタを入れておく必要があると思います。

2012-11-30 09:44:53
Kenji Yoshida @xuwei_k

@yasushia まぁ含めなくてもいい場合もある気がしなくもないので、せめて「含める含めないが簡単に切り替えられる」ようになってればいいんじゃないかと思ったんですが、たぶんそうなってないし

2012-11-30 09:45:38
∃ugene 🥙yokot∀ @eed3si9n_ja

maven の世界は pom.xml があればビルドできるからあとはソースさえあればってことかな?

2012-11-30 09:46:18
Yasushi Abe @yasushia

@eed3si9n_ja IDEではソース参照につかってますけど、maven的な意図は知りません。後で確認します。

2012-11-30 09:47:32
∃ugene 🥙yokot∀ @eed3si9n_ja

既に開発が止まっててどこの version control 使ってたのかもよく分からないような状態のときに deps 含めて全てのソース(生成後のファイルもネタも含む)が jar でそろえばそれは確かに便利かも。

2012-11-30 09:56:28
Yasushi Abe @yasushia

http://t.co/Z8JyN667 sourceプラグインがそれですが、明確にIDE用と書いてありました Build a JAR of sources for use in IDEs @eed3si9n_ja @xuwei_k

2012-11-30 10:17:16
Yasushi Abe @yasushia

なのでmavenリポジトリの-sources.jarはIDE用途がメイン、と言い切って大丈夫なはず。自動生成でもコード見せたければ同梱したらいい、くらいかな

2012-11-30 10:19:01
Kenji Yoshida @xuwei_k

https://t.co/0pNQmle3 このあたりいじればいいんだろうってことはわかるけど、なにやってるかイマイチわからないので、勘で適当にいじってる(ぇ

2012-11-30 10:19:55
Kenji Yoshida @xuwei_k

なにもいじってない状態で、sbtの0.13branchのHEADで、scripted testが失敗する事案が発生・・・ そういえば、sbtってjenkinsでCIとかしてるんだっけ?

2012-11-30 10:23:58
Yasushi Abe @yasushia

sourceMappingsにmanagedSourceの分を追加しないといけないんだ。めんどいなw

2012-11-30 11:30:18
Kenji Yoshida @xuwei_k

https://t.co/ps2MQORO 生成されたコード含ませることはできたみたいけど "target/scala-2.9.2/src_managed/Foo.scala" というpathのまま入ってしまう中途半端な状態のもの

2012-11-30 11:49:31