使用SBT构建scala以生成具有依赖项的JAR和文件夹

时间:2015-07-02 05:54:50

标签: java scala jar sbt

我在Scala(一种测试实用程序)中有一个项目,目前仅以sbt run方式使用。但是对于某些演示,我想以不需要sbtscala预安装的形式(仅JVM)进行准备。

首先,我尝试使用sbt-assembly插件但很快就会因重复输入而迷失方向。所以现在我很好奇我是否可以简单地将其编译为:

  • jar - 包含应用程序本身的文件;
  • lib目录包含原始依赖关系jar集。

我希望在这种情况下,在清单中的Main-ClassClass-Path: ./lib/*字段的帮助下运行会很容易 - 我错了吗?如果这是正确的,我该如何实现?

更新:最后我征服了sbt-assembly方法(似乎是这样),所以现在问题并不那么迫切(尽管我仍然很想扩展我对使用sbt的了解)。

2 个答案:

答案 0 :(得分:0)

执行sbt-assembly时,所有依赖项,应用程序和资源都将打包到一个jar文件中。

您可以通过以下方式覆盖运行时的配置属性:

java -cp conf/:myAppDemo.jar App.run.mainClass

配置属性文件放在conf文件夹中。

答案 1 :(得分:0)

Sbt one jar插件可以解决更多依赖项冲突,然后assembly插件 另请查看assembly插件的合并部分,它可以帮助您解决log4j.xml重复等问题。如果两个具有相同类路径的类具有不同内容的问题,请尝试排除一些重复的依赖项(library management