将外部项目文件打包为资源jar(SBT)

时间:2015-05-09 17:01:28

标签: java scala build sbt packaging

我在GitHub上有一个javascript项目和一个scala项目。我希望scala项目签出js项目并将其打包为scala项目的资源jar。

以下代码似乎不起作用。

lazy val myJsProj = RootProject(uri(
  // The project will be checkout to ~/.sbt/0.13/staging/089ea13043e2818509b4
  "https://github.com/foo/bar.git")) 

lazy val root = Project(
    id = "my-scala-proj", base = file("."),
    settings = Defaults.coreDefaultSettings
  ).dependsOn(myJsProj)

在scala项目目录中,src/main/resources中有一些文件。现在我运行命令sbt clean package。我注意到只有src/main/resources下的文件打包在my-scala-proj_2.10-0.1-SNAPSHOT.jar中,但我的js项目中没有包含任何文件。

我还找到了一个空罐~/.sbt/0.13/staging/089ea13043e2818509b4/my-js-proj/target/scala-2.10/my-js-proj_2.10-0.1-SNAPSHOT.jar

我猜dependsOn并不意味着将所有文件都包含在项目中?有人会发光吗?

1 个答案:

答案 0 :(得分:0)

dependsOn是指示构建中的一个项目如何依赖于存储库中的另一个项目。

RootProjecturi的使用是为了方便源兼容性,但它的工作效果有限(即libraryDependencies更可靠地工作)。

我不知道如何从远程源(通过uri)包含javascript项目的来源。我认为最好看的地方是sbt-web的(sbt)插件。