play2.6から2.7にバージョンアップ

play開発関連

公式を見ながらplay2.7にバージョンあげつつplugin.sbtとbuild.propertiesとbuild.sbtの見直しをしたのですがはまったのでメモ。

スポンサーリンク

sbt clean buildするとエラーが

証明書エラー

[error] 	typesafe-ivy-releases: unable to get resource for org.scala-lang#scala-compiler;2.12.7: res=https://repo.typesafe.com/typesafe/ivy-releases/org.scala-lang/scala-compiler/2.12.7/jars/scala-compiler.jar: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
[error] 
[error] 	at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:332)
[error] 	at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:208)
[error] 	at sbt.internal.librarymanagement.IvyActions$$$Lambda$2622/739089070.apply(Unknown Source)
[error] 	at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:239)
[error] 	at sbt.internal.librarymanagement.IvySbt$Module$$Lambda$2623/1544340778.apply(Unknown Source)
[error] 	at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:204)
[error] 	at sbt.internal.librarymanagement.IvySbt$$Lambda$2624/233285125.apply(Unknown Source)
[error] 	at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70)
[error] 	at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77)

証明書が古くなっているのが原因のようで、keytoolで証明書をimportするか

JDKのバージョンをあげるかすれば解決できます。私はJDKのバージョンをOpenJDK12にあげました。↓macでbrewを使っている場合

$ brew cask install java

SBTの構文エラー

error: `<<=` operator is removed. Use `key := { x.value }` or `key ~= (old => { newValue })`.

<<= を := に書き換えればなおります。

error while loading String, class file ‘/modules/java.base/java/lang/String.class’ is broken

error: error while loading String, class file '/modules/java.base/java/lang/String.class' is broken
(class java.lang.NullPointerException/null)
/Users/hoge/build.sbt:78: error: type mismatch;
 found   : sbt.Def.Initialize[sbt.Task[java.io.File]]
 required: java.io.File
  doc in Compile := target.map(_ / "none"),

これはdocがリリースに含まれないように書いてた部分の書き方が変わったようで、こんな感じになおしました。

// 古い書き方
doc in Compile <<= target.map(_ / "none")

// 新しい書き方
sources in (Compile, doc) := Seq.empty
publishArtifact in (Compile, packageDoc) := false
©2018 LLC Shimer-System.
image/svg+xml