私は SBT を初めて使用し、プロジェクトの 1 つに RPM パッケージを作成する必要があります。RPM には、sbt-onejar プラグインによって作成された 1 つの jar ファイルが 1 つだけ含まれています)。sbt-native-packager プラグインを使用したいので、次のように /project ディレクトリの下に Packagin.scala ファイルを作成しました。
object Packaging {
val settings: Seq[Setting[_]] = packagerSettings ++ deploymentSettings ++ mapGenericFilesToLinux ++ Seq(
maintainer := "Team",
packageSummary := "Summary",
packageDescription := """Description""",
mappings in Universal += {
file("target/scala-2.10/projectname_2.10-0.1-one-jar.jar") -> "/opt/projectname/projectname-0.1.jar"
},
linuxPackageMappings in Rpm <+= (baseDirectory) map { _:File =>
(packageMapping(file("target/scala-2.10/projectname_2.10-0.1-one-jar.jar") -> "/opt/projectname/projectname-0.1.jar")
withUser "someusr" withGroup "somegroup" withPerms "0755")
},
name in Rpm := "projectname",
version in Rpm <<= version apply { sv => sv split "[^\\d]" filterNot (_.isEmpty) mkString "." },
rpmRelease := "1",
rpmVendor := "Vendor",
rpmUrl := Some("url"),
rpmGroup := Some("group"),
rpmLicense := Some("BSD")
)
}
1) ファイル名をハードコーディングしたくありません。代わりに、"target/scala-2.10/projectname_2.10-0.1-one-jar.jar"
既存の SettingKey を使用する方法が必要です。つまり、target + "scala-" + scalaVersion + "/" + name + "_" + scalaVersion + "-" + version + "-one-jar.jar"
これをどのように行うのですか =
2)rpmRelease := "1"
システム プロパティを使用したい値については、つまり Maven では${rpm.buildNumber}
、SBT ではどのように機能しますか?
3) sbt-native-packager プラグインに関して何か改善すべき点はありますか?