scala 手动建立一个干净的sbt 程序
2016-01-13 15:09
295 查看
我们可以使用intellij idea 帮我们建立sbt 程序,但是会产生很多无用的文件,可以手动的建立一个sbt 程序:
假设你有一个sbt工程叫GBQ5,我们可以建立一个下面的目录结构:
1. build.sbt 主要配置自己的依赖包,包的依赖分为托管和非托管,其中: unmanagedBase := baseDirectory.value / "custom_lib", 配置了非托管的包的路径....
import _root_.sbt.Keys._
import _root_.sbt.Resolver
import _root_.sbt._
import _root_.sbtassembly.Plugin.AssemblyKeys
import AssemblyKeys._
import _root_.sbtassembly.Plugin.AssemblyKeys._
import _root_.sbtassembly.Plugin.MergeStrategy
import _root_.sbtassembly.Plugin._
assemblySettings
mergeStrategy in assembly <<= (mergeStrategy in assembly) { mergeStrategy =>
{
case entry => {
val strategy = mergeStrategy(entry)
if (strategy == MergeStrategy.deduplicate) MergeStrategy.first
else strategy
}
}
}
name := "GBQ5"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.4.1"
resolvers += "Job Server Bintray" at "https://dl.bintray.com/spark-jobserver/maven"
libraryDependencies += "spark.jobserver" %% "job-server-api" % "0.6.0" % "provided"
libraryDependencies += "spark.jobserver" %% "job-server-extras" % "0.6.0" % "provided"
unmanagedBase := baseDirectory.value / "custom_lib"
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
2. custom_lib
存放非托管的jar包, 在进行打包的时候,把非托管的jar包打到自己的包中
3. plugins.sbt
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
4.scala/main/src
在这个目录里写自己的程序即可
程序写完后在GBQ5目录执行sbt assembly 即可打包程序。
假设你有一个sbt工程叫GBQ5,我们可以建立一个下面的目录结构:
1. build.sbt 主要配置自己的依赖包,包的依赖分为托管和非托管,其中: unmanagedBase := baseDirectory.value / "custom_lib", 配置了非托管的包的路径....
import _root_.sbt.Keys._
import _root_.sbt.Resolver
import _root_.sbt._
import _root_.sbtassembly.Plugin.AssemblyKeys
import AssemblyKeys._
import _root_.sbtassembly.Plugin.AssemblyKeys._
import _root_.sbtassembly.Plugin.MergeStrategy
import _root_.sbtassembly.Plugin._
assemblySettings
mergeStrategy in assembly <<= (mergeStrategy in assembly) { mergeStrategy =>
{
case entry => {
val strategy = mergeStrategy(entry)
if (strategy == MergeStrategy.deduplicate) MergeStrategy.first
else strategy
}
}
}
name := "GBQ5"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.4.1"
libraryDependencies += "org.apache.spark" % "spark-sql_2.10" % "1.4.1"
resolvers += "Job Server Bintray" at "https://dl.bintray.com/spark-jobserver/maven"
libraryDependencies += "spark.jobserver" %% "job-server-api" % "0.6.0" % "provided"
libraryDependencies += "spark.jobserver" %% "job-server-extras" % "0.6.0" % "provided"
unmanagedBase := baseDirectory.value / "custom_lib"
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
2. custom_lib
存放非托管的jar包, 在进行打包的时候,把非托管的jar包打到自己的包中
3. plugins.sbt
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
4.scala/main/src
在这个目录里写自己的程序即可
程序写完后在GBQ5目录执行sbt assembly 即可打包程序。
相关文章推荐
- Windows下Scala环境搭建
- Windows7下安装Scala 2.9.2教程
- Scala代码实现列出Hadoop 文件夹下面的所有文件
- ClassNotFoundException:scala.PreDef$
- sbt创建web项目
- XML 文件解析--含Unicode字符的XML文件
- 分分钟掌握快速排序(Java / Scala 实现)
- Scala极速入门
- Spark初探
- Scala实现REST操作
- Scala method call syntax
- 关于Scala多重继承的菱形问题
- Scala 高阶函数(high-order function)剖析
- Scala Monad Design Pattern
- Spray.io搭建Rest服务
- Spray.io搭建Rest — 支持Twirl模板并部署
- 搭建hadoop/spark集群环境
- Akka (actors) remote example
- scala工具库