資源描述:
《scala教程:簡單構(gòu)建工具sbt-java開發(fā)java經(jīng)驗技巧》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Scala教程:簡單構(gòu)建工具SBT-JavaJT發(fā)Java經(jīng)驗技巧Scala教程:簡單構(gòu)建工具SBT木文由ImportNew?朱偉杰翻譯自ScalaSchool0歡迎加入翻譯小組。轉(zhuǎn)載請見文末要求。這個章節(jié)會講解SBT(SimpleBuildTool)!包含的主題有:?創(chuàng)建一個sbt工程?基木命令?sbt控制臺?連續(xù)執(zhí)行命令?自定義工程?H定義命令?sbt代碼簡介(如果時間允許的話)關(guān)于SBTSBT是一個現(xiàn)代構(gòu)建工具。它是用Scala編寫的,并且針對Scala也提供了很多方便快捷的功能。它也是一
2、個通用的構(gòu)建工貝。為什么使用SBT??強人的依賴管理功能oIvy用來管理依賴o一個只會根據(jù)需求更新的模型?所有任務(wù)的創(chuàng)建都支持Scala?可連續(xù)執(zhí)行命令?可以在工程的上下文里啟動REPL開始?卜載jar包:http://code.google.eom/p/simple-build-tool/downloads/list?創(chuàng)建一個stbshell腳木來調(diào)用jar包,例如:java-Xmx512M-jarsbt-launch.jar“?保證以上命令能夠正確執(zhí)行,它已經(jīng)放在了path下?運行sbt來創(chuàng)
3、建工程[local'/projects]$sbtProjectdoesnotexist,createnewproject?(y/N/s)yName:sampleOrganization:com.twitterVersion[1.0]:1.0-SNAPSHOTScalaversion[2.7.7]:2.8.1sbtversion[0.7.4]:GettingScala2.7.7...::retrieving::org.scala-tools.sbt#boot-scalaconfs:[default
4、]2artifactscopied,0alreadyretrieved(991lkB/221ms)Gettingorg.scala-tools.sbtsbt_2.7.70.7.4::retrieving::org.scala-tools.sbt#boot-appconfs:[default]15artifactscopied,0alreadyretrieved(4096kB/167ms)[success]Successfullyinitializeddirectorystructure.Gett
5、ingScala2.8.1::retrieving::org.scala-tools.sbt#boot-scalaconfs:[default]2artifactscopied,0alreadyretrieved(15118kB/386ms)[info]Buildingprojectsample1.0—SNAPSHOTagainstScala2.8.1[info]usingsbt.DefaultProjectwithsbt0.7.4andScala2.7.7從一個SNAPSIIORT版木來開始你
6、的工程是一個不錯的方式。工程結(jié)構(gòu)?project-匚程定義文件oprojcct/build/.scala-主要的工程定義文件oproject/build.properties-工程,sbt以及scala版本定義?sre/main-你的應(yīng)用代碼放在這里,不同的子目錄名稱表示不同的編程語言(例如,src/main/scala,src/inain/java)?src/main/resources-你想添加到j(luò)ar包里的靜態(tài)文件(例如日志配置文件)?lib_managcd-你的工程所依賴的jar文件。會
7、在sbt更新的時候添加到該H錄?target-最終生成的文件存放的目錄(例如,生成的thrift代碼,class文件,jar文件)添加一些代碼我們會創(chuàng)建一個簡單的json解析器來解析簡單的tweeto添加下面的代碼到src/main/scala/com/twiIter/sample/SimpleParser,scalapackagecom.twitter.samplecaseclassSimpleParsed(id:Long,text:String)classSimpleParser{valtw
8、eetRcgcx=""id":(?*),"tcxt":"(?*)""?rdefparse(str:String)={tweetRegex.findFirstMatchln(str)match{caseSome(m)二〉{valid二str.substring(m.start(1),m.cnd(l)).toIntvaltext=str.substring(m.start(2),m.end(2))Some(SimpleParsed(id,text))}case_二〉None}這段代碼很J