gpt4 book ai didi

sbt - 如何在具有多个电源的单个模块项目中设置 sbt-native-packager

转载 作者:行者123 更新时间:2023-12-04 22:22:41 25 4
gpt4 key购买 nike

我有一个单模块客户端-服务器项目,每个项目都有一个主模块。

我正在尝试使用 sbt-native-packager为两者生成启动脚本。

项目/P.scala

object Tactic extends Build {

lazy val root =
(project in file(".")).
configs(Client, Server)
.settings( inConfig(Client)(Defaults.configTasks) : _*)
.settings( inConfig(Server)(Defaults.configTasks) : _*)

lazy val Client = config("client") extend Compile
lazy val Server = config("server") extend Compile

}

build.sbt
mainClass in Client := Some("myProject.Client")

mainClass in Server := Some("myProject.Server")

enablePlugins(JavaAppPackaging)

当我运行 client:stage目录 target/universal/stage/lib使用所有必需的 jar 创建,但 bin目录丢失。我究竟做错了什么?

附属问题:设置起始脚本名称的关键是什么?

最佳答案

我建议将您的项目设置为多模块构建,而不是创建和使用新配置。我尝试了您的多种配置路线,它很快就变得毛茸茸的。

例如(我为 sharedclient 之间共享的任何内容创建了一个 server 项目):

def commonSettings(module: String) = Seq[Setting[_]](
organization := "org.tactic",
name := s"tactic-$module",
version := "1.0-SNAPSHOT",
scalaVersion := "2.11.6"
)

lazy val root = (project in file(".")
settings(commonSettings("root"))
dependsOn (shared, client, server)
aggregate (shared, client, server)
)

val shared = (project
settings(commonSettings("shared"))
)

val client = (project
settings(commonSettings("client"))
enablePlugins JavaAppPackaging
dependsOn shared
)

val server = (project
settings(commonSettings("server"))
enablePlugins JavaAppPackaging
dependsOn shared
)

注意我正在启用 sbt-native-packagerJavaAppPackagingclientserver .

然后运行 ​​ stage .

此外,起始脚本名称的键是 executableScriptName .

关于sbt - 如何在具有多个电源的单个模块项目中设置 sbt-native-packager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29729134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com