0

I'm trying to override the debain control scripts generated by the sbt native packer plugin. Allas, the plugin only allows me to append to the generated scripts. Instead of appending I want/need to replace some of the scripts. Does anyone know how?

4

2 回答 2

1

您可以覆盖所有受支持的控制脚本的设置。例如debianControlFiledebianMakePreinstScript

DebianPlugin提供了一些默认值。如果你使用的是原型,你会得到一些额外的东西。服务器原型覆盖某些任务以提供其他映射。

更新

这种行为正如我所描述的那样有效。然而,这适用于 sbt-native-packager 1.0.0-RC1。这表示

  1. 添加addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1")到您的plugins.sbt

  2. 从您的build.sbt

  3. src/debian/DEBIAN在文件夹中添加您的 debian 脚本(就像您所做的那样) 。他们将覆盖标准的。

所以你的build.sbt会看起来像这样

import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV

name := """play-debian-ctrl"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file("."))
  .enablePlugins(PlayScala, JDebPackaging)

daemonUser in Linux := "sometest"
serverLoading in Debian := SystemV
maintainer in Debian := "Jan Friderici <jnfrd@outlook.com>"
packageSummary := "Some More Tests"
packageDescription := """Even much more test, or text?."""

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  jdbc,
  anorm,
  cache,
  ws
)
于 2015-03-20T14:50:17.387 回答
0

不附加到默认脚本的最好方法是通过将以下内容添加到您的 build.sbt 来删除它们:

// disable all default control scripts
debianMakePreinstScript := None

debianMakePrermScript := None

debianMakePostinstScript := None

debianMakePostrmScript := None

现在你不应该有任何默认值,你可以自由地使用你的自定义一次。

于 2015-11-18T11:17:43.047 回答