在SBT-Scalatra项目中添加本地依赖关系jar

时间:2013-12-04 02:59:33

标签: scala sbt scalatra

我正在研究scalatra webapp示例。我创建了一个包含dao和服务层的服务jar。我想在Scalatra-SBT项目中添加此依赖项。我怎样才能做到这一点?

我使用命令捆绑了我的服务jar: SBT包,它创建了一个jar。我将如何在Web应用程序中包含此jar?我可以在build.scala文件中添加它吗?或者我可以复制到任何Webapp文件夹吗?

是否可以将此jar推送到本地存储库并在我的webapp构建时将其从那里拉出来?

1 个答案:

答案 0 :(得分:10)

呼!这里有很多问题!

好消息是SBT可以完成您要求的所有任务。

不要复制JAR文件以满足依赖关系!它最终会流泪,几乎可以保证。像Ivy和Maven(以及扩展,SBT)这样的工具可以提供帮助。

将服务jar推送到本地仓库:

SBT任务是publish-local,即来自服务jar根目录的sbt publish-local。 您将看到许多描述性输出,最后使用以下格式的行:

[info] published services_2.10 to /Users/millhouse/.ivy2/local/services/services_2.10/0.1-SNAPSHOT/jars/services_2.10.jar

只要您设置了build.sbtname变量,就不需要在scalaVersion中执行任何特殊操作即可完成此工作。请注意,这将发布到您当地的常春藤缓存,对于大多数人来说都是$HOME/.ivy2/local

让您的Scalatra-SBT网络应用程序获取您的服务jar:

编辑你的webapp project/build.scala,在libraryDependencies键下添加这个依赖项(应该已经存在一些依赖项,每行一个,将你的位置放在中间位置!):

"services" %% "services" % "0.1-SNAPSHOT",

执行sbt clean update并且您的依赖项将被拉入。如果它不起作用,SBT将为您提供其查找工件的位置列表;将它与它们发布的位置(在上一步中)密切比较,你可能会发现一个错字;修复它并再试一次。

请注意,依赖关系和发布管理方面的很多比上面显示的更多,但这应该足以让你前进。

相关问题