Scala SBT没有为依赖项生成字节码类文件

Scala SBT没有为依赖项生成字节码类文件,scala,apache-spark,intellij-idea,sbt,Scala,Apache Spark,Intellij Idea,Sbt,我有下一个build.sbt文件: 我试图实现的是向com.typesafe.config添加依赖项。对于当前的sbt配置,我预计最终字节码将具有以下结构: ~/test-spark-solution/target/scala-2.11/classes -com -olbico -spark JobManager$class.class JobManager.class

我有下一个build.sbt文件:

我试图实现的是向com.typesafe.config添加依赖项。对于当前的sbt配置,我预计最终字节码将具有以下结构:

~/test-spark-solution/target/scala-2.11/classes

 -com
     -olbico
          -spark
                JobManager$class.class
                JobManager.class
                ... more classes
     -typesafe
              -config
                    Optional.class
                    DefaultConfigLoadingStrategy.class
                    ... more classes
 -com
     -olbico
          -spark
                JobManager$class.class
                JobManager.class
                ... more classes
或者至少在最终的包jar中添加一个config-1.3.1.jar。这两种解决方案都被我接受了,尽管现在没有一个解决方案。在~/olbico spark solution/target/scala-2.11/classes下,我有以下结构:

~/test-spark-solution/target/scala-2.11/classes

 -com
     -olbico
          -spark
                JobManager$class.class
                JobManager.class
                ... more classes
     -typesafe
              -config
                    Optional.class
                    DefaultConfigLoadingStrategy.class
                    ... more classes
 -com
     -olbico
          -spark
                JobManager$class.class
                JobManager.class
                ... more classes

另外,打包后,包jar中没有包含config-1.3.1.jar。使用SBT向我的项目添加一个依赖项的最佳方法是什么?

Java/Scala世界中的普通打包并不意味着创建一个可部署的可执行文件,而只是创建一个模块的存档:您需要使用SBT汇编或SBT包来获得一个完全可部署的jar。

感谢您澄清这一点,Edmondo我知道这一点,尽管我知道试图找出通过SBT制作可部署jar的最佳方法,而无需使用第三方插件(如SBT assembly)。由于我是scala world的新手,我认为SBT可以提供一种方法,将声明的依赖项包含到生成的jar包中。它已经下载了所有的依赖项(在~/.ivy2/cache/下),所以为什么不把它们也嵌入呢?但正如你所提到的,这可能是一个天真的假设,这正是包装设计工作的方式,并且有很好的理由。如果您愿意,我可以详细说明我的答案如果您能提供更多详细信息,我将不胜感激,因为我不清楚为什么默认情况下,我明确包含在依赖项中的库的依赖项不通过字节码或lib文件夹包含