2016-05-19 6 views
0

申し訳ありません、私はsbtと "sbt-native-packager"を初めて使いました。私がする必要があるのは、ディレクトリ全体を.zipファイルにマップし、出力パスを変更することです。"sbt-native-packager"の出力ディレクトリを変更してください

私は、ディレクトリの私のマッピングを行ってきたどのようにこの:

mappings in Universal <++= (packageBin in Compile, baseDirectory) map { (_, baseDirectory) => 
    val dir = baseDirectory/"migrations" 
    (dir.***) pair relativeTo(dir.getParentFile) 
} 

マッピングが完全に正常に動作しますが、私は結果の.zipファイル内の特定のフォルダ構造を持っている必要があります。 この例では、このディレクトリは ".../target/stage/universal/migrations"にマッピングされていますが、このように "db"というフォルダにマップする必要があります。 ".../target/stage/db/universal /移行 "

事前に感謝します!

答えて

1

完全なディレクトリをマッピングするには、MappingHelpersを使用できます。あなたのコードは出力フォルダを変更するにはどのように2つ目の質問、について

mappings in Universal ++= directory(baseDirectory.value/"migrations") 

に単純化することができます。それは、 "マッピングの目的地のパスを変更する方法"であるべきであるから、質問はかなり正しいとは言えません。普遍的なパッケージングは​​、ターゲット出力が結果のパッケージのように見えるため、少し特別です。

ネイティブパッケージャでは、ファイルと出力パッケージに対応する出力パスを定義する(シーケンスはFile -> Stringのタプル)が使用されます。あなたは

# current 
./target/stage/universal/migrations 
# expected 
./target/stage/db/universal/migrations 

を変更したいのであれば私はあなたが先の文字列を変更する必要があり、これを達成するために、この

/  # zip root 
    bin/ # start scripts 
    db/ # migrations go here 
    conf/ # configuration files 
    lib/ # jars 

ようdbフォルダ内のzipファイル内の移行をしたいと仮定します。

+1

が、それは完全に働いた、どうもありがとう

mappings in Universal ++= contentOf(baseDirectory.value/"migrations").map { case (file, dest) => file -> s"db/$dest" } 

歓声、 Muki:これは、このような何か(テストされていない)になります! 私はあなたに投票しますが、私は十分な評判を持っていません。 ^^ '' –

+0

この回答は私が必要なものです。私はあなたに投票した –

関連する問題