summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Zeiger <szeiger@novocode.com>2015-11-30 17:16:53 +0100
committerStefan Zeiger <szeiger@novocode.com>2015-11-30 17:16:53 +0100
commit9fb965e4ef22019dcbd0f7441576df354bb1feb8 (patch)
tree74742eb4dc332702a62844e5570d0a6f6d4fcfcc
parent2890f0b767948dd9a0953b1e669e85dbd45ec0a7 (diff)
downloadscala-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.sbt4
-rw-r--r--project/Osgi.scala1
2 files changed, 3 insertions, 2 deletions
diff --git a/build.sbt b/build.sbt
index 143482a715..6dae804a2a 100644
--- a/build.sbt
+++ b/build.sbt
@@ -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
}