Havnar
Havnar

Reputation: 2638

sbt assembly not publishing fat jar

I can sbt assembly myself a fat jar without an issue with the below build.sbt file. However when I try to publish this "fat jar", sbt publish dumps only 1kb .jar files in the s3 bucket.

Unzipping the .jar file shows that it only contains a manifest file.

How do I get the fat jar into my repo?

update: striked text has been altered since initial question was posed. Removed the name override and it now publishes the build code but without the external libraries

below, my build.sbt file

name := "util_myutil"

version := "1.0.1"

scalaVersion := "2.10.4"

scalacOptions += "-target:jvm-1.7"

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.5.0-cdh5.5.2" % "provided"

unmanagedJars in Compile += file(".lib/my.jar")
unmanagedJars in Compile += file(".lib/some_other.jar")


assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)

assemblyJarName in assembly := s"${name.value}-${version.value}.jar"

ivyScala := ivyScala.value map { _.copy(overrideScalaVersion = true) }

resolvers ++= Seq(
  "Cloudera repos" at "https://repository.cloudera.com/artifactory/cloudera-repos",
  "Cloudera releases" at "https://repository.cloudera.com/artifactory/libs-release",
  "Era7 maven releases" at "https://s3-eu-west-1.amazonaws.com/releases.era7.com"
)

s3sse := true
s3region := com.amazonaws.services.s3.model.Region.US_Standard
s3acl := com.amazonaws.services.s3.model.CannedAccessControlList.Private
s3overwrite := true
publishMavenStyle := true

publishTo := {
  val suffix = if (isSnapshot.value) "snapshots" else "releases"
  Some(s3resolver.value(s"IT Insights Artifacts $suffix", s3("my-mvn-repo." + suffix)))
}

Upvotes: 0

Views: 3672

Answers (1)

ilcord
ilcord

Reputation: 414

from https://github.com/sbt/sbt-assembly:

add this to your build.sbt:

artifact in (Compile, assembly) := {
  val art = (artifact in (Compile, assembly)).value
  art.copy(`classifier` = Some("assembly"))
}

addArtifact(artifact in (Compile, assembly), assembly)

Upvotes: 3

Related Questions