年号が変わろうとしているこのタイミングで 2.4 ?
※この内容を書いている時点ではまだ改元施行前。
ことの発端は、とあるシステムがまだ Play の 2.2.x で、そこからの段階マイグレーションの一環で、
「とりあえずSNI対応は入っている 2.4.x にしておこう」となりました。
その作業の中でちょっと、変な時間の使い方をしてしまったので、その戒めとしてログを残しておきたいと思った次第です。
いきなり話が逸れますが、改元施行は2019年5月1日で、2019年4月1日~30日の平成31年度は一応存在するんだそうです。
(2)予算
改元に伴う元号による年表示の取扱いについて
国の予算における会計年度の名称については、原則、改元日以降 は、当年度全体を通じて「令和元年度」とし、これに伴い、当年度 予算の名称は、各府省が改元日以降に作成する文書においては「令 和元年度予算」と表示するものとする。
本年度中は、”平成31年度” でも “令和元年度” でも、目くじらたててどやされることはなさそう。
※さすがに改元施行後にあえて “平成” 持ち出すことはないとは思うけど。。
何をしようとしたのか
はいすみません、本題です。
まず構成
ざっくりとですが、
- Play アプリの本体プロジェクト(2.2.x)
- ↑に依存させるライプラリプロジェクト
という構成をとっていて、まずこのライブラリプロジェクトのマイグレーション作業を実施しようとしました。
ライブラリプロジェクトの build.sbt 修正
Play framework は 2.4 で 1.6, 7 が廃止されているので、ライブラリも 8 でコンパイルしてもらうように修正。
- javacOptions in (Compile, compile) := Seq("-target", "1.6", "-source", "1.6", "-encoding", "UTF-8")
+ javacOptions in (Compile, compile) := Seq("-encoding", "UTF-8")
次、java 1.8 で javadoc のチェックが厳密になっててめちゃくちゃ怒られるので、、
-Xdoclint オプション無効化で回避。
javacOptions in (Compile, doc) := Seq("-charset", "UTF-8", "-encoding", "UTF-8", "-Xdoclint:none")
次、ライブラリ内ではWSクライアントライブラリを使ってたりするんですが、2.3.x ではPlayの外に放り出されたみたいなので、それを参照するように修正。
Play 2.2 から 2.3、2.4 へのマイグレーションガイドとにらめっこしつつ、、
Add library dependency to
https://www.playframework.com/documentation/2.3.x/Migration23#Play-WSbuild.sbt
:libraryDependencies += javaWs
ふむふむ、javaWs の追加と import の修正、と。
libraryDependencies ++= Seq(
javaWs,
※いろいろな,
※ライブラリ達,,,,
)
// import play.libs.WS;
import play.libs.ws.WS;
これでライブラリ側のマイグレーションが終わったはず。publish-local して本プロジェクト側で参照っと。
D:\project\CommonLib>.\sbt\sbt.bat clean update compile publish-local
D:\project\CommonLib>java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar .\sbt\sbt-launch.jar clean
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; support was removed in 8.0
[info] Loading project definition from D:\project\CommonLib\project
D:\project\CommonLib\build.sbt:24: error: not found: value javaWs
javaWs,
^
[error] Type error in expression
、、え゛?
とまぁ、、ここからちょっと沼にハマってしまいましたとさ。
まとめ
解決方法:その1
ライブラリとたかをくくらず、build.sbt に Play framework の sbt プラグインを追加。
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % playVersion)
その上で javaWs を追加
libraryDependencies ++= Seq(
javaWs,
※いろいろな,
※ライブラリ達,,,,
)
解決方法:その2
外に放り出された ws を直接参照。
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-java-ws" % "2.4.11",
※いろいろな,
※ライブラリ達,,,,
)
2.7 まで続くのかなぁ、この行き当たりな感じ。。
以上です!
コメント