您的位置:首页 > 其它

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 scala