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;至於如何修改這個路徑,有待研究
轉載,僅供參考。