【发布时间】:2016-08-19 04:33:57
【问题描述】:
我有一个项目是 scala & scalatra API。我有两个使用 sbt-native-packager 构建的可分发文件 -
- RPM 和 DEB 安装用于本地安装
- 用于云安装的 heroku 安装
我目前正在使用 provided 范围依赖项来处理我需要使用 RPM/DEB 方法手动管理的项目 - 由于许可证限制,我无法捆绑和分发的数据库库。
"mysql" % "mysql-connector-java" % "5.1.30" % "provided",
"com.microsoft" % "sqlserver.jdbc" % "4.1" % "provided",
..etc..
这一直很好。我使用通用插件和dist 任务,稍加处理,然后连接一些包构建脚本。
现在我正在构建 heroku 安装,但我不知道如何重新添加那些提供的依赖项。我正在使用通用插件并运行stage 任务。但是,提供的依赖项正在被过滤掉,我希望在运行 stage 时将它们包含在内,因为我在 heroku 中不再有许可证限制。
我认为我有的选择...
- 添加
mapping以在stage任务期间添加回提供的范围依赖项,但在dist任务期间不添加 - 在
dist期间完全删除提供的范围并手动从打包过程中排除这些依赖项
我已经有一些这样的映射,
//add webapp dir to zip
mappings in Universal ++= directory("src/main/webapp")
//add db dir to zip, but move it into /lib/db instead of /db
mappings in Universal ++= (directory("src/main/resources/db").map{t =>
(t._1, "lib/"+t._2)
}
)
所以我觉得如果我真的尝试过,我可能会弄清楚如何添加/排除,但我在查找这些东西的任何文档时遇到了问题。 here 的例子并没有太大帮助,或者我理解的不够。
提前致谢!
【问题讨论】:
标签: scala sbt sbt-native-packager