Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用git子模块管理sbt依赖关系_Java_Git_Scala_Maven_Sbt - Fatal编程技术网

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 SHA
  • 没有
    3
    我也能活下去。如果
    2
    很难,那么当为打包指定的依赖项与git子模块不匹配时,我会接受
    sbt
    大声抱怨

    如果有帮助,以下是项目:

    • proj
      :(开发分公司)
    • dep
      :(开发部门)
    反向工作:

    3
    :可以通过将构建配置为在每次提交/推送时发布来实现。如果要发布到bintray,可以简化此过程

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

    1
    :您可以将
    dep
    项目作为
    RootProject
    保存在
    proj
    中,以简化并行开发,同时设置发布任务以确保首先发布
    dep