2016-05-19 2 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 вы можете использовать. Ваш код может быть упрощен

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

Что касается вашего второго вопроса, как изменить папку на выходе. Вопрос не совсем корректный, как и должно быть: «как изменить путь назначения для отображения». Универсальная упаковка является немного особенной, поскольку целевой вывод выглядит как полученный пакет.

Нативный упаковщик использует mappings (последовательность File -> String кортежей), которые определяют файл и соответствующий выходной путь в полученном пакете. Так что, если вы хотите изменить

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

Я предполагаю, что вы хотите миграции в файле почтового индекса в папке db как этот

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

Для того, чтобы достичь этого, вы должны изменить строку назначения. Это будет выглядеть примерно так (не проверено):

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

приветствий, MUKI

+1

Спасибо большое, он работал отлично! Я бы проголосовал за вас, но у меня недостаточно репутации. ^^ '' –

+0

Этот ответ мне нужен. Я проголосовал за тебя –

Смежные вопросы