Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
1. 프로젝트 폴더로 이동하여 console창에서 "sbt assembly"하면 jar파일이 만들어진다.
2. "sbt eclipse"하고 eclipse에서 "Refresh"하면 관련 jar를 인식하여 오류,경고 표시가 없어진다.
3. "sbt clean update compile"하면 모두 지우고 jar를 다시 받아 정리하고 컴파일을 한다.
---------------build.sbt-------------
import sbtassembly.AssemblyPlugin._
name := "sda-client"
version := "2.0"
javacOptions ++= Seq("-encoding", "UTF-8")
scalaVersion := "2.11.8"
//scalaVersion := "2.10.5"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
// sda-common.jar
// unmanagedJars in Compile += file("C:\dev\workspace\sda-common\build\libs\sda-common-2.0.jar")
unmanagedJars in Compile += file("C:\dev\workspace\sda-common\target\sda-common-2.0.jar")
libraryDependencies ++= Seq(
// spark
("org.apache.spark" %% "spark-core" % "2.0.0" % "provided").
exclude("org.mortbay.jetty", "servlet-api").
exclude("commons-beanutils", "commons-beanutils-core").
exclude("commons-collections", "commons-collections").
exclude("commons-logging", "commons-logging").
exclude("com.esotericsoftware.minlog", "minlog").
exclude("com.codahale.metrics", "metrics-core"),
("org.apache.spark" %% "spark-sql" % "2.0.0" % "provided"),
("org.apache.spark" %% "spark-streaming" % "2.0.0" % "provided"),
("org.apache.spark" %% "spark-streaming-kafka" % "1.6.2" % "provided"),
// hadoop
("org.apache.hadoop" % "hadoop-common" % "2.7.2" % "provided"),
("org.apache.hadoop" % "hadoop-mapreduce-client-common" % "2.7.2" % "provided")
)
// Excluding Scala library JARS(optional)
assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
assemblyExcludedJars in assembly := {
val cp = (fullClasspath in assembly).value
cp filter {_.data.getName == "slf4j-api-1.7.20.jar"}
}
assemblyMergeStrategy in assembly := {
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.last
case PathList("javax", "activation", xs @ _*) => MergeStrategy.last
case PathList("org", "apache", xs @ _*) => MergeStrategy.last
case PathList("com", "google", xs @ _*) => MergeStrategy.last
case PathList("com", "esotericsoftware", xs @ _*) => MergeStrategy.last
case PathList("com", "codahale", xs @ _*) => MergeStrategy.last
case PathList("com", "yammer", xs @ _*) => MergeStrategy.last
case "about.html" => MergeStrategy.rename
case "META-INF/ECLIPSEF.RSA" => MergeStrategy.last
case "META-INF/mailcap" => MergeStrategy.last
case "META-INF/mimetypes.default" => MergeStrategy.last
case "plugin.properties" => MergeStrategy.last
case "log4j.properties" => MergeStrategy.last
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
» | spark submit용 jar파일을 만드는 sbt 용 build.sbt설정 파일(참고용) | 2016.08.19 | 708 |
9 | 여러가지 방법으로 특정 jar파일을 exclude하지 못하는 경우 해당 jar파일을 제외시키는 방법 | 2016.08.11 | 298 |
8 | 외부 jar파일을 만들려고하는jar파일의 package로 포함하는 방법 | 2016.08.10 | 176 |
7 | [SBT] assembly시 "[error] deduplicate: different file contents found in the following:"오류 발생시 조치사항 | 2016.08.04 | 1093 |
6 | [SBT] SBT 사용법 정리(링크) | 2016.08.04 | 1049 |
5 | [SBT] project.sbt에 libraryDependencies에 필요한 jar를 지정했으나 sbt compile할때 클래스를 못찾는 오류가 발생했을때 조치사항 | 2016.08.03 | 1213 |
4 | build할때 unmappable character for encoding MS949 에러 발생시 조치사항 | 2016.08.03 | 911 |
3 | [sbt] sbt-assembly를 이용하여 실행에 필요한 모든 j라이브러리를 포함한 fat jar파일 만들기 | 2016.07.11 | 2142 |
2 | [sbt] sbt 0.13.11 를 windows에 설치하고 scala프로그램을 compile해서 jar파일 만들기 | 2016.07.11 | 678 |
1 | centos에 sbt 0.13.5 설치 | 2016.05.30 | 813 |