我不太熟悉Scala或sbt-本机包程序,但是有一个scala项目,我们在这里创建一个debian。我注意到,创建的.deb的名称是正确的,但是控制文件不是--有什么方法可以改变这种情况吗?
版本:
Play: 2.2.3 (also tried with 2.2.6)
Sbt-Native-Packager: 0.7.6在plugins.sbt中
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.6")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.6")这是我得到的(减去敏感信息):
Build.scala:
val main = play.Project(appName, appVersion, appDependencies)
.settings(scalaVersion := "2.10.4")
.settings(DebPackageSettings.packageSettings(appName, appVersion, baseDirectory): _*)在DebPackageSettings中:
def packageSettings(appName: String , appVersion: String, baseDirectory: SettingKey[java.io.File]): Seq[sbt.Setting[_]] = {
val baseName = "prefix-project-name"
val appPackageArchitecture = "all"
Seq(
name in Debian := "%s".format(baseName),
version in Debian := "%s".format(appVersion),
packageDescription in Linux := "something",
packageSummary in Linux := "something",
target in Debian <<= (Keys.target) apply ((t) => t / (baseName + "_" + appVersion + "_" + appPackageArchitecture))
)
...创建的控制文件(在DEBIAN/ control中):
Source: project-name
Package: project-name
Priority: optional
Architecture: all
...创建的prefix-project-name_version_all.deb:.deb
我是不是遗漏了什么?我查阅了sbt本机打包程序文档,并在googled上搜索了一些答案,但没有运气:
发布于 2016-02-16 17:15:50
name in Debian似乎只影响.deb文件名,而不影响控制文件中的包名。为此,您应该使用packageName。这个插件在名称、空间和继承方面都很混乱。
经过一些测试后,我发现以下几点应该能让它发挥作用:
name in Linux := baseName,
packageName in Linux := baseName,如果使用in Debian,您将得到一个混合产品,其中一半的名称来自主作用域名称,另一半来自debian作用域。
发布于 2016-02-17 08:22:10
我发现这是可行的--但哪一种方式更可取呢?
进口:
import sbt._
import sbt.Keys._
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._增加的一行:
normalizedName in Debian := "%s".format(baseName),不过,不知道什么更好!
https://stackoverflow.com/questions/35437849
复制相似问题