类Lerna工具/用Java处理monorepos

时间:2018-09-07 22:25:58

标签: java lerna monorepo

我来自网络开发背景,并且经常从事使用Lerna从JavaScript的同一存储库处理多个包的项目。就目前而言,我需要用Java重新创建其中一些项目,并且需要知道如何在不使用Lerna且不使用Gradle作为我们的构建工具的情况下进行操作。

我的问题是关于如何使用Java中的多个程序包处理大型存储库:

编辑:对问题重新措词以使其符合准则。通过如此古老的答案来保留下面的旧问题更有意义。

  1. 我是否需要像Lerna那样使用单独的工具来帮助管理Java包,还是可以像Maven或Gradle这样的构建工具自行处理呢?
  2. 如果两个团队使用不同的构建工具,是否更容易因其各种贡献而引起问题?
  3. 首先要在一个存储库中维护多个Java软件包吗?


  1. 在Java中是否已经有执行此操作的软件包或插件? (我找不到任何东西。)
  2. 解决方案是否会在使用不同构建工具进行各种贡献的团队之间引起问题? (例如:Maven和Gradle)
  3. 首先要在一个存储库中维护多个Java包吗?
  4. 问这个问题时,我有根本无法理解的事情吗?我会朝寻找解决方案的错误方向前进吗?

2 个答案:

答案 0 :(得分:2)

此时,Java项目管理的事实上的标准似乎是gradle和maven的结合(通过gradle插件)。

这两者的结合消除了对诸如Lerna之类的工具的需求,因为它们允许开箱即用地配置本地依赖项。

设置multi-project build后,您可以将兄弟项目添加为依赖项,如下所示:

dependencies {
    compile project(':sibling')
}

例如,如果使用支持gradle的IDE(例如Intellij IDEA),它将在创建gradle项目时为您创建初始目录结构,并配置通过其UI创建的新模块。稍微玩一玩可能是个好主意,以便掌握所有连接方式。

答案 1 :(得分:0)

Java在语言级别上可以很好地处理软件包。我不明白这个问题。您可以创建不同的包/模块/等。在任何项目中。对于具有依赖项的构建管理,请使用Maven或Gradle。