【问题标题】:How to build a jar file out of github project in sbt to be used in a scala program如何在 sbt 中从 github 项目中构建 jar 文件以用于 scala 程序
【发布时间】:2013-05-06 10:58:49
【问题描述】:

我正在尝试使用 scala 访问亚马逊的 DynamoDB,并在 github https://github.com/piotrga/async-dynamo 上找到了这个很棒的包

所以我将代码下载为 zip 文件,解压缩,然后执行“sbt clean test”并得到以下错误

error sbt.ResolveException: unresolved dependency: asyncdynamo#async-dynamo;1.6.0: not found

问题:这是生成可以包含在 Scala 程序中的 jar 文件的正确方法还是有更好的方法? 提前致谢。

编辑:

为了他人的利益,SCALA SBT 文档提供了大量有关构建过程的信息。

【问题讨论】:

标签: scala sbt amazon-dynamodb


【解决方案1】:

您可以只运行“sbt publish-local”,然后在其他项目中包含托管依赖项的行,而不是生成 jar 文件。 Sbt/ivy 会看到你有这样的工件,你不需要将 jar 添加到另一个更干净的项目中。 然后,例如,如果您需要更新其他项目,则无需再次替换 jar - 只需再次发布本地并清理并运行您的其他项目!

【讨论】:

    【解决方案2】:

    您似乎不是唯一一个对此有问题的人,请参阅 github 问题页面: https://github.com/piotrga/async-dynamo/issues

    “sbt clean test”命令将运行 sbt 检测到的测试。如果你想要一个 .jar 文件,你可以使用“sbt clean package”,它会在 target/ 文件夹中生成一个 .jar。

    我克隆了 repo 并在稍微更改了 release.sbt 后能够运行 sbt 包。我不得不更改“publishTo”变量,因为它似乎取决于存储库创建者的本地环境变量,所以我只是将其注释掉。

    我没有得到依赖问题,所以我想它是正确声明的。虽然它尝试运行的测试确实失败了,但 sbt 包编译生成 .jar 就好了。

    编辑:正如 Matthias Schlaipfer 在 cmets 中指出的那样,更优雅(也更容易)的方法是将其作为依赖项添加到您的 build.sbt 中。从自述文件中,这是您需要添加的内容:

    解析器 += "piotrga" 在 "https://github.com/piotrga/piotrga.github.com/tree/master/maven-repo"

    libraryDependencies += "asyncdynamo" % "async-dynamo" % "1.6"

    【讨论】:

    • 非常感谢我在评论 publishTo 变量后能够 Getty 它工作。
    • 正如所指出的,一个更简洁的解决方案是在 sbt 中将其用作依赖项,但很乐意提供帮助!如果有效,请接受答案。
    猜你喜欢
    • 2013-05-15
    • 2016-10-06
    • 2011-09-15
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 2013-03-12
    • 2019-07-25
    • 1970-01-01
    相关资源
    最近更新 更多