Sbt lock1

  • 423 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
423
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. sbt-lock Lock library versions for stable build 2014/3/11 #rpscala 121回 @kawachi
  • 2. 緩いバージョン指定問題 My Application LibA 1.0.0 org % libA % [1.0.0,) LibA 2.0.0 書き換えていないのに 時間が経ったら
 ビルド結果が変わる ! 「前は動いてたのに!」 new release 「1.0.0以上」
  • 3. My Application LibA 1.0.0 LibB 1.0.0 LibB 2.0.0 ここが大丈夫でも… こことか ここで
 問題が起きるかも… 依存関係は続くので
 問題が起きる箇所を
 把握するのは面倒
  • 4. 解決案1. exclude • 固定したい部分を exclude して、
 明示的にバージョンを指定する • libraryDependencies ++= Seq(
 "log4j" % "log4j" % "1.2.15" exclude("javax.jms", jms ),
 javax.jms" % jms % 1.0.0 
 ) exclude する箇所を探すのが大変
  • 5. 解決案2. retrieveManged • 新品の Play! 2.2.2 scala プロジェクトで (依存が多いと)わりと残念
  • 6. バージョン指定を上書き • dependencyOverrides += "log4j" % "log4j" % "1.2.16" • ライブラリ毎にバージョンの指定ができる
 (依存関係は増やさない) 全依存ライブラリの dependencyOverrides を
 書いた .sbt ファイルを作ればよさそう。
  • 7. lock.sbt ↓こんな内容を書き込みます update task の結果を元に 「あ、うごきそう」
  • 8. やってみて気づいたこと • Configuration 毎に別のバージョンは
 指定できなさそう • Configuration 毎に別バージョンを使いたい ことはある?
  • 9. やってみて気づいたこと • libraryDependencies のバージョンを
 書き換えても変化がない • dependencyOverrides で上書きしてるので
 正しいが、気づきづらい
  • 10. わからないこと • lock.sbt ファイルを作った後/消した後に reload したい • command にすればいいのでしょうか? • project/, project/project/ も lock すべき?
  • 11. https://github.com/tkawachi/sbt-lock/