2017-07-20 96 views
1

我们正在开发两个包depprojdepproj的开发并行发生 - 即proj的特定版本取决于特定版本的dep。由于手动更新版本的dep每几个提交是乏味的,我们正在使用-SNAPSHOT机制(版本0.5-SNAPSHOTproj取决于0.4-SNAPSHOTdep)。这远非理想,我们没有信息来构建proj的更旧版本。使用git子模块管理sbt依赖关系

我试过sbt的RootProject,但是破坏了发布proj - 该软件包不再包含对dep的依赖。

理想的情况下,这里就是我想要的:

  1. proj直接通过git-submodule
  2. 使用的dep源当发布proj能够拉从dep的项目文件的依赖性信息。
  3. 开发版本dep包括git的SHA,这是从

建立我会得到通过,而不3。如果2很困难,当为包装指定的依赖项与git子模块不匹配时,我会大声抱怨sbt抱怨。

万一有帮助,这些都是项目:

回答

0

工作向后:

3:可以通过sbt-dynver实现并配置您的构建发布每一次提交/推送。 sbt-release-early可以简化这个过程,如果你发布到bintray。

2proj可以取决于使用提交范围的开发版本,例如deporg % dep % 1.0.+ - 然而这使得构建较少的可重复性,因为没有指定具体的依赖是一个指定的提交,可以提高分辨率倍

1:您可能能够保持dep项目作为RootProjectproj简化并行开发,同时设置发布任务以确保首先发布dep