【问题标题】:Separate jars for different main classes under same src同一src下不同主类的单独jar
【发布时间】:2013-02-16 15:56:44
【问题描述】:

使用 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 文件的具体示例会有所帮助。

【问题讨论】:

  • 你想要一个 A 和 B 的 jar,都包含公共基类吗?
  • 是的。 2个具有公共类的jar文件。
  • 你找到什么好的解决办法了吗?
  • 我所做的是创建一个根项目,使用相同的基础聚合 A 和 B 项目。

标签: scala build jar sbt


【解决方案1】:

你应该看看Getting Started Multi Project。下面我做了一个简单的例子:

import sbt._

object MyBuild extends Build {

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

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

【讨论】:

  • 这不适用于我所描述的情况,因为两个项目具有相同的基础。
  • 您可以创建包含公共类的第三个项目,并使用“类路径依赖项”下的链接中所述的dependsOn。或者您可以尝试使用相同的基本路径创建两个项目,然后从每个项目的构建中排除一些类(我没有尝试过,所以不确定它是否会工作)。这是一个回答,展示了如何从构建中排除 java 类,以便您可以根据需要对其进行调整。 stackoverflow.com/a/8896784/355499
猜你喜欢
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多