2013-10-02 38 views
1

我有一个在Java/Ant中的模式,我使用Ivy在任务中获取我的依赖关系,并将它们放在项目的本地lib /文件夹中。我不希望有一个本地Maven,我只希望开发人员在他们改变某些东西时运行依赖关系更新(我在提取lib之后提交libs)。手动检索常春藤依赖作为本地非托管库在sbt

如何利用SBT依赖关系设置手动将它们提取到本地库文件夹并用作“非托管”依赖项(而不是lib_managed)?我真的不想强迫开发人员设置他的ivy.home或构建启动器配置。我宁愿只是有一个可调用的任务,将这些库提取到我在build.sbt/scala中指定的位置。这样做的任何例子?

回答

0

我不使用sbt,但和ANT合作的方法是创建一个启动目标,设置开发人员的机器,以便常春藤可用于管理依赖关系。看看下面的例子:

+0

这是一个模式我已经有了,我想直接使用SBT瓦特/出一个build.xml分离 –

0

管理不能在一般被翻译成非托管。有些特殊情况下,可以将一些罐子放入lib/,并产生相应的结果,但通常不会。的问题的示例:

  1. 插件可以请求罐子在定制配置被下载和非托管不会涵盖那些
  2. 每个类路径/配置需要包含所有罐子
  3. 非托管依赖性丧失相关的元数据的单独目录,doc用于自动链接到外部网站,例如

这是Java(Maven/Ivy)现有依赖管理解决方案的一个普遍问题。可以近似锁定,脱机解析的想法,但不是特别干净,轻松或灵活。 (我知道Ivy的retrieve)。在sbt中,它可能需要使用lib_managed/,skip in update := true,,并且保留update高速缓存(在target/中),但这没有记录或测试。

(对于一个长期方向,Adept有锁定下来的依赖性和离线使用的核心目标。)