我在scala项目中有一个依赖项,我想在其中包含它,以便它可以在项目中使用,而不必为使用该项目的每个人使用Internet。换句话说,我想做一些“发布本地”但有点不同:发布本地只在我的机器上本地发布它,使用该项目的每个人都必须在他们的机器上本地发布它,而我想发布这个依赖项直接在这个scala项目中。
是否可能以及如何?
更新:
我想通过互联网将这个项目交给一个人。我希望他们只下载我的项目,而不必下载任何其他内容。但我的项目有一个外部依赖项,我可以自己下载。
我可以将此依赖项(自己下载后)包含到项目中并将项目提供给该人员,以便他们能够成功运行它吗?如何?如何让sbt从项目中加载,而不是从Internet或其他任何地方加载?
答案 0 :(得分:3)
此人正在尝试为您的项目提供:您是希望他们能够构建您自己的项目,还是只是运行它?
如果您希望其他人能够构建它:将库添加为非托管依赖项,如here所述。将库jar放在项目顶层的lib
目录中,并将jar作为项目的一部分检查到版本控制中。
如果您只希望其他人能够运行它,请:
使用sbt-assembly插件(https://github.com/sbt/sbt-assembly)创建一个包含已编译代码和库编译代码的jar。
或者只是将它作为两个独立的罐子(你的和库),并为你的用户提供两个罐子,也许还有一个启动脚本。