From f8057597e687cc2000210e81b824c5676372aabe Mon Sep 17 00:00:00 2001 From: Christopher Vogt Date: Sun, 19 Feb 2017 23:07:09 +0800 Subject: fix srcJar path. Was wronly absolute fs path. Now relative. --- examples/build-info-example/BuildInfo.scala | 8 -------- examples/build-info-example/src/BuildInfo.scala | 8 ++++++++ stage2/Lib.scala | 22 +++++++++++++++------- stage2/PackageJars.scala | 2 +- 4 files changed, 24 insertions(+), 16 deletions(-) delete mode 100644 examples/build-info-example/BuildInfo.scala create mode 100644 examples/build-info-example/src/BuildInfo.scala diff --git a/examples/build-info-example/BuildInfo.scala b/examples/build-info-example/BuildInfo.scala deleted file mode 100644 index ac0e680..0000000 --- a/examples/build-info-example/BuildInfo.scala +++ /dev/null @@ -1,8 +0,0 @@ -// generated file -import java.io._ -object BuildInfo{ -def artifactId = "build-info-example" -def groupId = "cbt.examples" -def version = "0.1" -def scalaVersion = "2.11.8" -} diff --git a/examples/build-info-example/src/BuildInfo.scala b/examples/build-info-example/src/BuildInfo.scala new file mode 100644 index 0000000..ac0e680 --- /dev/null +++ b/examples/build-info-example/src/BuildInfo.scala @@ -0,0 +1,8 @@ +// generated file +import java.io._ +object BuildInfo{ +def artifactId = "build-info-example" +def groupId = "cbt.examples" +def version = "0.1" +def scalaVersion = "2.11.8" +} diff --git a/stage2/Lib.scala b/stage2/Lib.scala index 7adb33e..d6047f9 100644 --- a/stage2/Lib.scala +++ b/stage2/Lib.scala @@ -56,10 +56,13 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ } } - def srcJar(sourceFiles: Seq[File], artifactId: String, scalaMajorVersion: String, version: String, jarTarget: File): Option[File] = { + def srcJar( + sourceFiles: Seq[File], artifactId: String, scalaMajorVersion: String, version: String, jarTarget: File, + filter: File => Boolean, stripBase: File + ): Option[File] = { lib.jarFile( jarTarget ++ ("/"++artifactId++"_"++scalaMajorVersion++"-"++version++"-sources.jar"), - sourceFiles + sourceFiles, filter=filter, stripBase=Some( stripBase ) ) } @@ -268,11 +271,15 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ for { base <- sources.filter(_.exists).map(lib.realpath) file <- lib.listFilesRecursive(base) if file.isFile && sourceFileFilter(file) - } yield file + } yield file } // FIXME: for some reason it includes full path in docs - def jarFile( jarFile: File, files: Seq[File], mainClass: Option[String] = None ): Option[File] = { + def jarFile( + jarFile: File, files: Seq[File], mainClass: Option[String] = None, + filter: File => Boolean = _ => true, stripBase: Option[File] = None + ): Option[File] = { + val stripBaseCanonical = stripBase Files.deleteIfExists(jarFile.toPath) if( files.isEmpty ){ None @@ -291,9 +298,10 @@ final class Lib(val logger: Logger) extends Stage1Lib(logger){ base <- files.filter(_.exists).map(realpath) file <- listFilesRecursive(base) if file.isFile } yield { - val name = if(base.isDirectory){ - file.toString stripPrefix (base.toString ++ File.separator) - } else file.toString + val strip = Some( base ).filter(_.isDirectory) ++ stripBaseCanonical + val name = strip.foldLeft( file.getCanonicalPath )( + (f, prefix) => f.stripPrefix( prefix.getCanonicalPath ++ File.separator ) + ) val entry = new JarEntry( name ) entry.setTime(file.lastModified) jar.putNextEntry(entry) diff --git a/stage2/PackageJars.scala b/stage2/PackageJars.scala index 8ba1798..0e4a444 100644 --- a/stage2/PackageJars.scala +++ b/stage2/PackageJars.scala @@ -15,7 +15,7 @@ trait PackageJars extends BaseBuild with ArtifactInfo{ } def srcJar: Option[File] = taskCache[PackageJars]("srcJar").memoize{ - lib.srcJar( sourceFiles, artifactId, scalaMajorVersion, version, scalaTarget ) + lib.srcJar( sources, artifactId, scalaMajorVersion, version, scalaTarget, sourceFileFilter, projectDirectory ) } def docJar: Option[File] = taskCache[PackageJars]("docJar").memoize{ -- cgit v1.2.3