【问题标题】:Publish local but into a project itself在本地发布,但发布到项目本身
【发布时间】:2013-11-28 10:44:20
【问题描述】:

我在一个 scala 项目中有一个依赖项,我想将其包含在其中,这样它就可以在项目中使用,而不必为使用该项目的每个人使用 Internet。换句话说,我想做一种“本地发布”,但有点不同:本地发布仅在我的机器上本地发布,使用该项目的每个人也必须在他们的机器上本地发布它,而我想发布这个依赖直接在这个 scala 项目中。

有可能吗?如何实现?

更新

我想通过 Internet 将项目提供给某人。我希望他们只下载我的项目,而无需下载其他任何东西。但是我的项目有一个外部依赖项,我可以自己下载。

我可以将此依赖项(在自己下载后)包含到项目中并将项目提供给该人,以便他们能够成功运行它吗?如何?我如何让 sbt 从项目而不是从 Internet 或其他任何地方加载它?

【问题讨论】:

  • Unmanaged Dependencies 看起来像您想要的吗?您只需将依赖项添加到项目中的 lib 文件夹中,然后将其捆绑以供其他人使用。对于具有多个模块的项目,您可能还想查看 Multi-project builds
  • 我不明白这个问题。您不想将其发布到 Internet,但也不想在本地发布。可能还有什么其他选择……?我不知道“直接发布这个依赖”是什么意思。
  • @SethTisue 你不想将它发布到互联网上 -- 不正确。
  • 很好,但我仍然在猜测您的实际要求是什么。也许这个? stackoverflow.com/questions/7550376/…
  • @SethTisue,我更新了问题。

标签: scala dependencies sbt


【解决方案1】:

您试图将您的项目交给此人:您希望他们能够构建您自己的项目,还是仅仅运行它?

  • 如果您希望其他人能够构建它:将库添加为非托管依赖项,如 here 所述。将库 jar 放在项目顶层的 lib 目录中,并将 jar 作为项目的一部分签入版本控制。

  • 如果您只希望其他人能够运行它,则:

    • 使用 sbt-assembly 插件 (https://github.com/sbt/sbt-assembly) 创建一个包含已编译代码和库的已编译代码的 jar。

    • 或者将其保留为两个单独的 jar(您的和库),然后将这两个 jar 提供给您的用户,可能还附带一个启动脚本。

【讨论】:

  • 是的,构建。我有一个包含几个项目的项目。但是,我将 .jar 放入根 /lib 目录中,将其从 /project/Build.scala 中删除,现在它无法编译,因为它似乎找不到该 .jar 文件。
  • 这是显示/lib 功能工作的成绩单:gist.github.com/SethTisue/d33c5a5e3fdd1e20b3b3。不知道为什么您的项目特别会有所不同。您是否尝试过将问题最小化?你能向我们展示你的构建吗...?
猜你喜欢
  • 2012-07-06
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多