[英]Is there a way to automatically package multiple main classes in the same SBT project with sbt-onejar?
我有一个SBT项目,包含多个带main
类,即MyClass extends App
。 当只有一个这样的类时, 一个jar工作正常。 如果找到多个类,它会提示我选择要打包的类:
> one-jar
Multiple main classes detected, select one to run:
[1] com.smth.AppOne
[2] com.smth.AppTwo
Enter number:
我想配置one-jar来自动打包所有主类。 在文档中 ,它将默认主类定义为mainClass in run in Compile
,因此它看起来只需要一个值。
如果这是不可能的,我很好奇为什么不。 :)
现在我只能想到一些黑客,比如为每个jar创建一个代理项目,或者每次调用one-jar
之前在SBT中设置一个mainClass
(每次构建多次)。 这些方法显然有其不足之处。
这不是关于SBT或onejar插件。 将项目打包到jar文件中时,将打包两个主类。 JAR文件规范定义您可以根据需要使用main()
方法创建尽可能多的类,但是每个JAR应该只有一个类具有在Main-Class
属性中定义的main()
方法
来自文档:
mainClass in oneJar := Some("com.acme.Woozler")
尝试添加
mainClass in oneJar := Some("com.smth.AppOne")
在你的配置
我会尝试sbt多项目构建。 您应该能够为每个项目设置一个主类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.