diff options
author | Stefan Zeiger <szeiger@novocode.com> | 2015-11-30 17:16:53 +0100 |
---|---|---|
committer | Stefan Zeiger <szeiger@novocode.com> | 2015-11-30 17:16:53 +0100 |
commit | 9fb965e4ef22019dcbd0f7441576df354bb1feb8 (patch) | |
tree | 74742eb4dc332702a62844e5570d0a6f6d4fcfcc | |
parent | 2890f0b767948dd9a0953b1e669e85dbd45ec0a7 (diff) | |
download | scala-9fb965e4ef22019dcbd0f7441576df354bb1feb8.tar.gz scala-9fb965e4ef22019dcbd0f7441576df354bb1feb8.tar.bz2 scala-9fb965e4ef22019dcbd0f7441576df354bb1feb8.zip |
Fix dependency problems in the sbt build
- Create the directory for the output file when building an OSGi
bundle. Otherwise a publishing command would fail if dist/mkPack had
not been run before.
- Depend only on “packagedArtifact” in “mkPack”, not on “packageBin”.
The latter is sbt’s standard packaging task but some of the required
dependencies need to be packaged as OSGi bundles.
-rw-r--r-- | build.sbt | 4 | ||||
-rw-r--r-- | project/Osgi.scala | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -667,7 +667,7 @@ lazy val dist = (project in file("dist")) libraryDependencies ++= Seq(scalaContinuationsLibraryDep, scalaContinuationsPluginDep, scalaSwingDep, jlineDep), mkBin := mkBinImpl.value, mkQuick <<= Def.task {} dependsOn ((distDependencies.map(products in Runtime in _) :+ mkBin): _*), - mkPack <<= Def.task {} dependsOn (packageBin in Compile, mkBin), + mkPack <<= Def.task {} dependsOn (packagedArtifact in (Compile, packageBin), mkBin), target := (baseDirectory in ThisBuild).value / "target" / thisProject.value.id, packageBin in Compile := { val extraDeps = Set(scalaContinuationsLibraryDep, scalaContinuationsPluginDep, scalaSwingDep, scalaParserCombinatorsDep, scalaXmlDep) @@ -684,7 +684,7 @@ lazy val dist = (project in file("dist")) }, cleanFiles += (buildDirectory in ThisBuild).value / "quick", cleanFiles += (buildDirectory in ThisBuild).value / "pack", - packageBin in Compile <<= (packageBin in Compile).dependsOn(distDependencies.map(packageBin in Compile in _): _*) + packagedArtifact in (Compile, packageBin) <<= (packagedArtifact in (Compile, packageBin)).dependsOn(distDependencies.map(packagedArtifact in (Compile, packageBin) in _): _*) ) .dependsOn(distDependencies.map(p => p: ClasspathDep[ProjectReference]): _*) diff --git a/project/Osgi.scala b/project/Osgi.scala index 6c0ef74ef5..ed961d1c27 100644 --- a/project/Osgi.scala +++ b/project/Osgi.scala @@ -62,6 +62,7 @@ object Osgi { val jar = synchronized { builder.build } builder.getWarnings.foreach(s => log.warn(s"bnd: $s")) builder.getErrors.foreach(s => log.error(s"bnd: $s")) + IO.createDirectory(artifactPath.getParentFile) jar.write(artifactPath) artifactPath } |