sbt编译
⑴ eclipse怎样支持scala
1、scala是什么
其实,scala是 一种语法,类似java,而sbt是 一个构建工具,类似maven,gradle,ant等。在eclipse中只有scala开发环境的插件,可以构建scala project,但是没有sbt 插件,就像没有maven插件的eclipse,只能构建和编辑java project,但是整不了maven project。
2、 构建步骤
1)构建Scala语言环境 ,和java一样,主要分两步:下载软件、配置HOME和Path.
2)安装SBT 工具,下载、配置全局变量(在windows环境中添加sbt.bat脚本,可以直接运行)
3)使用SBT生成一个类似maven 包结构的scala project。
3、实际操作
1)新建一个目录叫 test
2)在test目录中新建文件build.sbt
3)在test目录新建project目录,进入project目录,并新建plugins.sbt,在其中添加
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")
4)在build.sbt中配置工程的name,scala编译环境,依赖等等。如:
import sbt._
import Process._
import Keys._
EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Resource
lazy val commonSettings = Seq(
name := "test",
organization := "com.marsyoung",
version := "0.0.1-SNAPSHOT",
scalaVersion := "2.11.7"
)
lazy val root = (project in file(".")).
settings(commonSettings: _*).
settings(
libraryDependencies ++= Seq(
"junit" % "junit" % "4.4",
"javax.ws.rs" % "jsr311-api" % "1.1.1"
)
)
5)在cmd中进入对应的project目录,即test目录。运行sbt。
6)执行eclipse命令,将对应的项目转化成可以引入eclipse开发工具并且目录结构类似maven的项目。
7)打开已经安装了scala ide的eclipse,导入对应的project,会自动的编译成scala peoject.
4、小提示
SBT配置使其支持本地maven和私服,如下:
在用户根目录下的.sbt文件夹内,在windows下就是C->用户->用户名->.sbt目录下新建repositories文件并插入内容:
[repositories]
local
activator-launcher-local: file:////${activator.local.repository-${activator.home-${user.home}/.activator}/repository}, [organization]/[mole]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
activator-local: file:////${activator.local.repository-D:/maven/repo3.3.1}
sohu-public: http://xxx.com/nexus/content/groups/public
typesafe-releases: http://repo.typesafe.com/typesafe/releases
typesafe-ivy-releasez: http://repo.typesafe.com/typesafe/ivy-releases, [organization]/[mole]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
sonatype-oss-releases
sonatype-oss-snapshots
maven-central
本地maven地址为:
D:/maven/repo3.3.1
⑵ 如何有效减少Nios II EDS所编译程式码大小
1.使用Release模式
预设为debug模式,由于需要调试符号表,生成的debug文件会大一些。。选择要设置的工程,右键,active build configuration 勾选 release即可。
2、调整GCC参数
选择要设置的工程,右键——“properties" 左侧选C/C++ build,在左侧 total setting tab选择general ,在右侧Optimization Levels选Optimize most(-O3)或Optimize size(-Os)
3.使用Reced device drivers
选择要设置的工程,按右键,System Library Properties ,将Reced device drivers打勾。
4.缩小Max file descriptors常数
预设为32 选择好project,按右键,System Library Properties ,设置Max file descriptors常数。
5、将stdout、stderr、stdin设为null
在要设置的工程上,右键,System Library Properties ,将stdout、stderr、stdin设为null。
6、使用Small C library
右键System Library Properties ,将Small C library打勾。
7、使用UNIX-Style File I/O
Nios II的HAL已经提供了UNIX-Style File I/O函数,直接使用将可有效减少 编译程序的文件大小。
8、自己制作 ANSI C函数
有些函数可以自己写的。
9、使用Lightwieght device driver API
10.使用Minimal character-mode API
用sys/alt_stdio.h取代stdio.h ,sys/alt_stdio.h提供了alt_printf()、alt_putchar()、alt_putstr()与alt_getchar()如此可以减少程序大小。
11.移除不需要的驱动程序
这个需要自己手动移除。
12、避免Clean exit
按右键,System Library Properties ,不要选Clean exit(flush buffers)。
13、勾选Program never exits
按右键,System Library Properties ,勾选Program never exits
14、不要使用C++
按右键,System Library Properties ,不要勾选Support C++。
⑶ scala maven sbt 哪个
SBT是Simple Build Tool的简称,如果读者使用过Maven,那么可以简单将SBT看做是Scala世界的Maven,虽然二者各有优劣,但完成的工作基本是类似的。
虽然Maven同样可以管理Scala项目的依赖并进行构建, 但SBT的某些特性却让人如此着迷,比如:
* 使用Scala作为DSL来定义build文件(one language rules them all);
* 通过触发执行(trigger execution)特性支持持续的编译与测试;
* 增量编译;^[SBT的增量编译支持因为如此优秀,已经剥离为Zinc,可被Eclipse, Maven,Gradle等使用]
* 可以混合构建Java和Scala项目;
* 并行的任务执行;
* 可以重用Maven或者ivy的repository进行依赖管理;
等等这些,都是SBT得以在Scala的世界里广受欢迎的印记。
SBT的发展可以分为两个阶段, 即SBT_0.7.x时代以及SBT_0.10.x以后的时代。
目前来讲, SBT_0.7.x已经很少使用, 大部分公司和项目都已经迁移到0.10.x以后的版本上来,最新的是0.12版本。 0.10.x之后的版本build定义采用了新的Settings系统,与最初0.7.x版本采用纯Scala代码来定义build文件大相径庭,虽然笔者在迁移之前很抵触(因为0.7.x中采用Scala定义build文件的做法可以体现很好的统一性),但还是升级并接纳了0.10.x以后的版本,并且也逐渐意识到, 虽然新的版本初看起来很复杂,但一旦了解了其设计和实现的哲学跟思路,就会明白这种设计可以更便捷的定义build文件。而且可选的build文件方式也同样运行采用Scala代码来定义,即并未放弃统一性的思想。
以上是SBT的简单介绍,如果读者已经急于开始我们的SBT之旅,那么让我们先从SBT的安装和配置开始吧!
## SBT安装和配置
SBT的安装和配置可以采用两种方式,一种是所有平台都通用的安装配置方式,另一种是跟平台相关的安装和配置方式,下面我们分别对两种方式进行详细介绍。
### 所有平台通用的安装配置方式
所有平台通用的安装和配置方式只需要两步:
1. 下载sbt boot launcher
- 本书采用最新的sbt0.12,其下载地址为<http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.0/sbt-launch.jar>;
2. 创建sbt启动脚本(启动脚本是平台相关的)
- 如果是linux/Unit系统,创建名称为sbt的脚本,并赋予其执行权限,并将其加到PATH路径中; sbt脚本内容类似于
``java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar `dirname $0`/sbt-launch.jar "$@"``, 可以根据情况调整合适的java进程启动参数;
- 如果是Windows系统,则创建sbt.bat命令行脚本,同样将其添加到PATH路径中。 脚本内容类似于``set SCRIPT_DIR=%~dp0 \n
java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*``
以上两步即可完成sbt的安装和配置。
### 平台相关的安装配置方式
笔者使用的是Mac系统,安装sbt只需要执行``brew install sbt``即可(因为我已经安装有homebrew这个包管理器),使用macport同样可以很简单的安装sbt - ``sudo port install sbt``;
⑷ 如何运行Spark程序
本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤:
1、构建sbt标准的项目工程结构:SBT项目工程结构图其中:~/build.sbt文件用来配置项目的基本信息(项目名、组织名、项目版本、使用的scala版本或者再次配置些项目所需的依赖包);project/build.properties文件配置你要使用什么版本的sbt对项目操作;project/plugins.sbt文件是给项目添加所需的插件;project/Build.scala文件是对项目进行些复杂的高级配置;详细的sbt安装配置实用参见博文:
2、到相应目录下编写程序,spark程序必须要创建一个SparkContext实例。SparkContext("master", "projectName", "SPARK_HOME", "yourProject.jar path")
3、sbt compile命令编译程序无错后,sbt package命令将程序打包。默认打包的jar文件存放路径为:项目根目录/target/scala-xx.xx.xx/your-project-name_xx.xx.xx-xx.jar
4、将打包好的jar问价添加到SPAK_CLASSPATH中(在linux中根据作用范围的不同有多种更改环境变量的方式,这里只说我的配置方式:spark根目录下的conf/spark-env.sh文件添加SPARK_CLASSPATH:xxxxxxxx)
5、配置好环境变量后就可以在spark的根目录下使用./run脚本运行你的程序了例如:./run spark.examples.SparkPi spark://masterIP:port注意,如果程序涉及IO操作起默认路径为SPARK_HOME;至于如何修改这个路径,有待研究
转载,仅供参考。