sbt程序集,依赖项和子项目

时间:2016-03-07 11:37:00

标签: sbt sbt-assembly

我创建了一个带有一些子项目的sbt(v.0.13.8)项目(我有充分的理由,请参阅Apache Spark and gRPC)。

我想要的是

  • 根项目
  • 几个子项目
  • 至少有一个子项目创建一个包含在根项目中的jar文件(我想包含jar文件而不是目标,就像我在jar文件中应用一些着色/重定位一样)

为此,我创建了一个根构建文件(build.sbt),它引用了一个子项目(grpc):

->cdc(...)

在grpc / build.sbt中我写

<?php
$CDCService = new QuickBooks_IPP_Service_ChangeDataCapture();

// What types of objects do you want to get? 
$objects = array( 
    'Payment', 
    'Invoice', 
    );

// The date they should have been updated after 
$timestamp = QuickBooks_Utilities::datetime($datetime_you_last_called_cdc_method);
$cdc = $CDCService->cdc($Context, $realm, 
    $objects,
    $timestamp);

// You would cache all the stuff you get back here
print_r($cdc);

我曾希望通过这样做,我可以生成一个jar文件,将其放入根项目的lib文件夹中并从那里使用它。

到目前为止,遗憾的是,组装任务无法识别,我收到以下错误:

lazy val root = project.
  settings(commonSettings: _*).
  aggregate(grpc).
  dependsOn(grpc % "compile->assembly")

我在grpc / project / assembly.sbt中添加了必要的assemblyOutputPath in assembly := sbt.file("../lib/grpc-assembly-0.1-SNAPSHOT.jar") 命令,如果进入文件夹grpc并执行sbt.ResolveException: unresolved dependency: io.tmp#grpc_2.10;0.1.0: configuration not found in io.tmp#grpc_2.10;0.1.0: 'assembly'. It was required from io.tmp#root_2.10;0.1.0 compile ,它就可以了。同样,我在顶层项目文件夹(project / assembly.sbt)中也有相同的文件。为什么它没有在这里找到装配任务?我误解了什么吗?你在我尝试做的事情中看到了问题吗?

0 个答案:

没有答案