我的目录结构设置如此。
src/main/scala/main/Main.scala
src/main/scala/scripts/MainScript.scala
该脚本是一个将要运行的后台作业。
我之前使用sbt-assembly
将主文件打包到要部署的jar中,但我不确定如何使用sbt-assembly
或sbt-native-packager
创建两个单独的jar 。我将如何做到这一点以及这个问题的最佳方法是什么?
我希望做类似的事情。
java -jar main.jar $PORT
java -jar scriptMain.jar
答案 0 :(得分:1)
仅使用native-packager解决此问题的一种方法是:
src/main/scala
mainClass in Compile := Some("foo.bar.Main")
src/universal/bin
中的-main
参数生成的主脚本调用到您要调用的类。现在你有一个输出包(例如zip,rpm,deb),它具有以下结构。假设您的应用名为 myApp ,并且您提供给名为 otherApp1 / otherApp2
的其他bin脚本lib/ (jars live here)
conf/ (configuration files here, if any)
bin/
myApp
otherApp1
otherApp2
不幸的是我没有脚本的例子(我的bash-foo对于SO上的即时魔法来说还不够好)。最后,脚本(otherApp1,otherApp2)应该只将它们收到的参数传递给native-packager脚本(myApp)。
an issue #633提供了一种生成此类脚本的自动方式。
希望有所帮助, 缪奇