Sbt 为什么Universal中的映射对';它包括在柏油球里吗?

Sbt 为什么Universal中的映射对';它包括在柏油球里吗?,sbt,sbt-native-packager,Sbt,Sbt Native Packager,我的build.sbt的摘要如下所示: import com.github.bigtoast.sbtliquibase.LiquibasePlugin import S3._ import com.typesafe.sbt.SbtNativePackager._ import com.typesafe.sbt.SbtNativePackager.Universal import com.typesafe.sbt.packager.Keys._ import Path.flat mappings

我的
build.sbt
的摘要如下所示:

import com.github.bigtoast.sbtliquibase.LiquibasePlugin
import S3._
import com.typesafe.sbt.SbtNativePackager._
import com.typesafe.sbt.SbtNativePackager.Universal
import com.typesafe.sbt.packager.Keys._
import Path.flat

mappings in Universal ++= {
  ((baseDirectory.value / "src/main/migrations" * "*").get map { f => f -> (f.name) })
}
当我运行
universal:packageZipTarball
时,我希望
src/main/migrations
中的文件会出现在最后的tarball中。他们没有

我看到的是:

a database2-0.34.0
a database2-0.34.0/lib
a database2-0.34.0/lib/com.trailhunger.database2-0.34.0.jar
a database2-0.34.0/lib/org.postgresql.postgresql-9.3-1101-jdbc4.jar
a database2-0.34.0/lib/org.scala-lang.scala-library-2.10.3.jar

在我构建的另一个项目中,非常相似的代码工作得非常完美。

tl;dr你的体格对我来说很好

以下是完整的
build.sbt
以重现您的问题:

packageArchetype.java_application

mappings in Universal ++= {
  ((sourceDirectory in Compile).value / "migrations" * "*").get.map { f => 
    f -> (f.name)
  }
}
需要记住的一点是,在自己在构建中设置键之前,先放置
packageArchetype.java_应用程序
,因为顺序很重要

除了排序之外,Compile中的
sourceDirectory有一个小小的变化,它为我提供了正确的
src/main
目录,而无需连接路径

> show sourceDirectory
[info] /Users/jacek/sandbox/sbt-native-packager-playground/src
> show compile:sourceDirectory
[info] /Users/jacek/sandbox/sbt-native-packager-playground/src/main
项目/构建.属性

sbt.version=0.13.6-M1
项目/sbt本机包装机.sbt

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4")
src/main/migrations
下,我有一个文件-
migration1.txt
,它被添加到最后一个tarball中

> universal:packageZipTarball
[info] Wrote /Users/jacek/sandbox/sbt-native-packager-playground/target/scala-2.10/sbt-native-packager-playground_2.10-0.1-SNAPSHOT.pom
a sbt-native-packager-playground-0.1-SNAPSHOT
a sbt-native-packager-playground-0.1-SNAPSHOT/lib
a sbt-native-packager-playground-0.1-SNAPSHOT/migration1.txt
a sbt-native-packager-playground-0.1-SNAPSHOT/lib/default.sbt-native-packager-playground-0.1-SNAPSHOT.jar
a sbt-native-packager-playground-0.1-SNAPSHOT/lib/org.scala-lang.scala-library-2.10.4.jar
[success] Total time: 0 s, completed Aug 9, 2014 10:17:37 PM
这是
universal:mappings
的值,仅供参考:

> show universal:mappings
[info] Wrote /Users/jacek/sandbox/sbt-native-packager-playground/target/scala-2.10/sbt-native-packager-playground_2.10-0.1-SNAPSHOT.pom
[info] ArrayBuffer((/Users/jacek/sandbox/sbt-native-packager-playground/target/scala-2.10/sbt-native-packager-playground_2.10-0.1-SNAPSHOT.jar,lib/default.sbt-native-packager-playground-0.1-SNAPSHOT.jar), (/Users/jacek/.sbt/boot/scala-2.10.4/lib/scala-library.jar,lib/org.scala-lang.scala-library-2.10.4.jar), (/Users/jacek/sandbox/sbt-native-packager-playground/src/main/migrations/migration1.txt,migration1.txt))
[success] Total time: 0 s, completed Aug 9, 2014 10:16:27 PM
嗨,Jacek,我喜欢(编译中的sourceDirectory)。这是一个很好的接触。遗憾的是,我仍然没有工作。依赖project/根模块中的两个文件会是一个问题吗?如果是,我不知道任务将如何运行。