SBT+IDEA Scala开发环境搭建
2015-10-27 00:00
357 查看
摘要: SBT+IDEA Scala开发环境搭建
从解压的目录中立即可以发现,bin 目录和 conf 目录,毫无疑问,bin 目录就是执行文件所在目录
进入 bin 目录,看到 sbt.bat, 这个文件就是 windows 的 sbt 执行文件,查看一下里面的内容,发现如下信息:
从代码中可以发现最重要的配置文件就是 %SBT_HOME%..\conf\sbtconfig.txt ,所以第一步就是
设置环境变量:
为了使idea能够修改 sbt-launch.jar 中的默认参数,一方面是修改 sbt-launch.jar 中的配置文件,另一个途径
就是修改 idea 全局 vmoptions。这个文件在 Idea 安装目录 bin 目录下面,一个对应 32 位, 一个对应 64 位,
对应修改之后变为如下:
下面重新启动Idea测试一下效果。 似乎没什么用,干脆直接修改 sbt-launch.jar 文件中 sbt 目录下面的 sbt.boot.properties 文件
再测试一下效果。搞定
SBT+IDEA Scala开发环境搭建
前言
利用 IDEA 开发 Scala程序有一段时间了,老是有一个问题困扰着我,那就是Idea里面的 SBT 使用的配置根本没有使用我自己下载的 SBT 里面的配置,导致 Idea 里面新建 sbt 项目总是无法使用代理下载依赖,从而使得下载失败。我只能 每次都在外面使用 cmd,先 sbt update 然后 gen-idea 然后再加载到 Idea。效率之地下,让人吐血。今天狠下心来, 一定要把这个问题攻破。常规SBT配置
首先下载SBT,解压到你想要安装的地方,我的安装目录如下:D:\softwares\dev\java\sbt>dir 驱动器 D 中的卷是 NewDisk 卷的序列号是 0E5B-9C07 D:\softwares\dev\java\sbt 的目录 2015/10/16 11:14 <DIR> . 2015/10/16 11:14 <DIR> .. 2015/09/06 09:02 <DIR> bin 2015/10/19 19:07 <DIR> boot 2015/09/06 09:02 <DIR> conf 2015/10/19 20:22 <DIR> ivy2 0 个文件 0 字节 6 个目录 150,068,903,936 可用字节
从解压的目录中立即可以发现,bin 目录和 conf 目录,毫无疑问,bin 目录就是执行文件所在目录
进入 bin 目录,看到 sbt.bat, 这个文件就是 windows 的 sbt 执行文件,查看一下里面的内容,发现如下信息:
@REM SBT launcher script @REM @REM Envioronment: @REM JAVA_HOME - location of a JDK home dir (mandatory) @REM SBT_OPTS - JVM options (optional) @REM Configuration: @REM sbtconfig.txt found in the SBT_HOME. @REM ZOMG! We need delayed expansion to build up CFG_OPTS later @setlocal enabledelayedexpansion @echo off set SBT_HOME=%~dp0 rem FIRST we load the config file of extra options. set FN=%SBT_HOME%\..\conf\sbtconfig.txt set CFG_OPTS= FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%FN%") DO ( set DO_NOT_REUSE_ME=%%i rem ZOMG (Part #2) WE use !! here to delay the expansion of rem CFG_OPTS, otherwise it remains "" for this loop. set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME! ) rem We use the value of the JAVACMD environment variable if defined set _JAVACMD=%JAVACMD% if "%_JAVACMD%"=="" ( if not "%JAVA_HOME%"=="" ( if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe" ) ) if "%_JAVACMD%"=="" set _JAVACMD=java #这里可以看出当 JAVA_OPTS 这个环境变量设置了的话就会不会使用 config 里面的环境变量了 rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config. set _JAVA_OPTS=%JAVA_OPTS% if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS% :run #最后执行行调用 java %JAVA_OPTS% %SBT-OPTS% %SBT_HOME%sbt-lauch.jar "%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %* if ERRORLEVEL 1 goto error goto end :error @endlocal exit /B 1 :end @endlocal exit /B 0
从代码中可以发现最重要的配置文件就是 %SBT_HOME%..\conf\sbtconfig.txt ,所以第一步就是
设置环境变量:
SBT_HOME=D:\softwares\dev\java\sbt
修改配置文件 conf/sbtconfig.txt
一些常见的配置可以在网上查到,从上面分析可以看出里面就是设置一些 JAVA_OPTS,下面是我的配置:# 设置 jvm 内存 -Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m # 其他的sbt参数 -Dsbt.log.format=true -Dhttp.proxyHost=proxy.tencent.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.tencent.com -Dhttps.proxyPort=8080 # 设置boot目录以及ivy本地仓库地址 -Dsbt.boot.directory=D:/softwares/dev/java/sbt/boot/ -Dsbt.ivy.home=D:/softwares/dev/java/sbt/ivy2/
修改 idea.exe.vmoptions/idea64.exe.vmoptions
然而上面的一切对 Idea 来说不起作为,原因是 Idea 直接调用的就是 sbt-launch.jar 根本没有参数可言,为了使idea能够修改 sbt-launch.jar 中的默认参数,一方面是修改 sbt-launch.jar 中的配置文件,另一个途径
就是修改 idea 全局 vmoptions。这个文件在 Idea 安装目录 bin 目录下面,一个对应 32 位, 一个对应 64 位,
对应修改之后变为如下:
-Xms128m -Xmx750m -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=225m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Dsbt.log.format=true -Dhttp.proxyHost=proxy.tencent.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.tencent.com -Dhttps.proxyPort=8080 -Dsbt.boot.directory=D:/softwares/dev/java/sbt/boot/ -Dsbt.ivy.home=D:/softwares/dev/java/sbt/ivy2/
下面重新启动Idea测试一下效果。 似乎没什么用,干脆直接修改 sbt-launch.jar 文件中 sbt 目录下面的 sbt.boot.properties 文件
[scala] version: ${sbt.scala.version-auto} [app] org: ${sbt.organization-org.scala-sbt} name: sbt version: ${sbt.version-read(sbt.version)[0.13.5]} class: ${sbt.main.class-sbt.xMain} components: xsbti,extra cross-versioned: ${sbt.cross.versioned-false} resources: ${sbt.extraClasspath-} [repositories] local typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly maven-central [boot] directory: D:/softwares/dev/java/sbt/boot/ [ivy] ivy-home: D:/softwares/dev/java/sbt/ivy2/ checksums: ${sbt.checksums-sha1,md5} override-build-repos: ${sbt.override.build.repos-false} repository-config: ${sbt.repository.config-${sbt.global.base-${user.home}/.sbt}/repositories}
再测试一下效果。搞定
参考资料
http://9leg.com/scala/2015/10/17/scala-play-setting.html相关文章推荐
- Windows下Scala环境搭建
- Windows7下安装Scala 2.9.2教程
- IntelliJ IDEA & Android Studio的调整优化
- XML 文件解析--含Unicode字符的XML文件
- 分分钟掌握快速排序(Java / Scala 实现)
- Scala极速入门
- Spark初探
- Scala实现REST操作
- Scala method call syntax
- 关于Scala多重继承的菱形问题
- Scala 高阶函数(high-order function)剖析
- Spray.io搭建Rest服务
- Spray.io搭建Rest — 支持Twirl模板并部署
- 搭建hadoop/spark集群环境
- 使用Ant构建SSH项目(Intellij IDEA版)
- Akka (actors) remote example
- idea常用设置
- IntelliJ IDEA使用Application Server开发普通Java Web项目
- IntelliJ IDEA使用Maven快速开发Java Web项目,并添加JFinal依赖