Scala 同一src下不同主类的单独JAR

Scala 同一src下不同主类的单独JAR,scala,build,jar,sbt,Scala,Build,Jar,Sbt,使用sbt为同一源代码树下的多个主类生成单独jar文件的最佳方法是什么 项目目录如下所示: project_root/ src/main/scala/ A/*.scala files for main class A B/*.scala files for main class B resources/ test/scala/

使用sbt为同一源代码树下的多个主类生成单独jar文件的最佳方法是什么

项目目录如下所示:

project_root/
        src/main/scala/
                     A/*.scala files for main class A
                     B/*.scala files for main class B
                 resources/
            test/scala/
                     A/
                     B/
        lib/
        project/Build.scala
        build.sbt   
请注意,A和B都有相同的基。Build.scala文件的具体示例会很有帮助。

您应该看看。我在下面举了一个简单的例子:

import sbt._

object MyBuild extends Build {

  lazy val projA = Project("projA", file("a")) 

  lazy val projB = Project("projB", file("b"))
}

A和B分别需要一个jar吗?两个jar都包含公共基类?是的。2个jar文件,它们有公共类。你找到好的解决方案了吗?我所做的是创建一个根项目,使用相同的基来聚合a和B项目。这对我描述的情况不起作用,因为两个项目都有相同的基础。您可以创建第三个项目,该项目包含公共CLSA,并使用
dependsOn
,如“类路径依赖项”下的链接所述。或者您可以尝试使用相同的基本路径创建两个项目,然后在每个项目中从构建中排除一些类(我没有尝试过这样做,所以不确定它是否有效)。下面是一个示例,展示了如何从构建中排除java类,以便您可以根据需要对其进行调整。