使用git子模块管理sbt依赖项

时间:2017-07-20 16:11:05

标签: java git scala maven sbt

我们正在开发两个包depprojdepproj的开发是并行发生的 - 即proj的特定版本取决于dep的特定版本。由于每次提交手动更新dep的版本都很繁琐,因此我们使用的是-SNAPSHOT机制({1}}版本0.5-SNAPSHOT取决于proj { {1}})。这远非理想,我们没有信息来构建0.4-SNAPSHOT的旧提交。

我已经尝试了dep,但这打破了发布proj - 该套餐不再包含对RootProject的依赖。

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

  1. proj直接通过dep
  2. 使用proj的来源
  3. 发布时dep能够从git-submodule的项目文件中提取相关信息。
  4. proj的开发版本包括从
  5. 构建的git SHA

    我没有dep。如果dep很难,那么当针对包装指定的依赖项与git-submodule不匹配时,我会满足3大声抱怨。

    如果有帮助,这些是项目:

1 个答案:

答案 0 :(得分:2)

向后工作:

3:可以使用sbt-dynver实现,并将构建配置为在每次提交/推送时发布。如果要发布到bintray,sbt-release-early可以简化此过程。

2proj可以依赖于使用提交范围的dep开发版本,例如org % dep % 1.0.+ - 但是这会使构建的可重现性降低,因为没有为给定的提交指定确切的依赖关系并且可以增加解析时间

1:您可以将dep项目保留为RootProject proj以简化并行开发,同时设置发布任务以确保{{1}首先发布。