有小伙伴向我咨询 play framework 的问题,我就想了解一下 play framework ,按照官方的文档,要使用 SBT 安装,就掉进了 SBT 的坑。
第一坑:国外仓库太慢
安装完成后,执行
$ sbt
命令后,提示:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384m; support was removed in 8.0
Getting org.scala-sbt sbt 0.13.15 (this may take some time)...
downloading https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.15/jars/sbt.jar ...
[SUCCESSFUL ] org.scala-sbt#sbt;0.13.15!sbt.jar (22976ms)
downloading https://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.6/scala-library-2.10.6.jar ...
[SUCCESSFUL ] org.scala-lang#scala-library;2.10.6!scala-library.jar (1553281ms)
然后就是漫长的等待!
第二坑:同时只能有一个 sbt 进程操作本地仓库
由于过程太慢,于是就打开新的终端窗口操作,结果不管执行 sbt 相关的什么命令都提示:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384m; support was removed in 8.0
Waiting for lock on /Users/aven/.sbt/boot/sbt.boot.lock to be available...
原因是有多个sbt终端同时在运行,使得多个进程同时在访问.sbt.ivy.lock。
解决办法是:打开你的资源管理器,将你本机的java进程全部kill掉。
第三坑:配置使用国内仓库
既然是构架依赖管理工具,像Maven、yum之类的都可以添加或修改库的位置,于是:
vi ~/.sbt/repositories
添加以下内容:
[repositories]
#local
public: http://maven.aliyun.com/nexus/content/groups/public/
typesafe:http://dl.bintray.com/typesafe/ivy-releases/ , [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
ivy-sbt-plugin:http://dl.bintray.com/sbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
sonatype-oss-releases
sonatype-oss-snapshots