Java 使用git子模块管理sbt依赖关系
我们正在开发两个包Java 使用git子模块管理sbt依赖关系,java,git,scala,maven,sbt,Java,Git,Scala,Maven,Sbt,我们正在开发两个包dep和proj。dep和proj的开发是并行进行的,即proj的特定版本取决于dep的特定版本。由于每隔几次提交就手动更新dep的版本非常繁琐,因此我们使用了-SNAPSHOT机制(proj的0.5-SNAPSHOT版本取决于dep的0.4-SNAPSHOT)。这远远不理想,因为我们不再有信息来构建proj的旧提交 我已经试用过sbt的RootProject,但这打破了发布proj——该软件包不再包含对dep的依赖 理想情况下,我想要的是: proj通过git子模块直接使用d
dep
和proj
。dep
和proj
的开发是并行进行的,即proj
的特定版本取决于dep
的特定版本。由于每隔几次提交就手动更新dep
的版本非常繁琐,因此我们使用了-SNAPSHOT
机制(proj
的0.5-SNAPSHOT
版本取决于dep
的0.4-SNAPSHOT
)。这远远不理想,因为我们不再有信息来构建proj
的旧提交
我已经试用过sbt的RootProject
,但这打破了发布proj
——该软件包不再包含对dep
的依赖
理想情况下,我想要的是:
proj
通过git子模块直接使用dep
的源代码
proj
时,可以从dep
的项目文件中提取依赖项信息dep
的开发版本包括构建它的git SHA3
我也能活下去。如果2
很难,那么当为打包指定的依赖项与git子模块不匹配时,我会接受sbt
大声抱怨
如果有帮助,以下是项目:
:(开发分公司)proj
:(开发部门)dep
3
:可以通过将构建配置为在每次提交/推送时发布来实现。如果要发布到bintray,可以简化此过程
2
:proj
可以依赖于使用提交范围的dep
开发版本,例如org%dep%1.0.+
——但是这会降低生成的可复制性,因为没有为给定的提交指定确切的依赖关系,并且会增加解析时间
1
:您可以将dep
项目作为RootProject
保存在proj
中,以简化并行开发,同时设置发布任务以确保首先发布dep