【问题标题】:Lerna-like tools / handling monorepos in Java [closed]类似 Lerna 的工具/在 Java 中处理 monorepos [关闭]
【发布时间】:2018-09-07 22:25:57
【问题描述】:

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

我的问题是关于如何在 Java 中处理包含多个包的大型存储库:

编辑:改写问题以符合指南。将下面的旧问题保留在旧答案中更有意义。

  1. 我是否需要像 Lerna 对 JavaScript 那样使用单独的工具来帮助管理 Java 中的包,或者是否可以使用 Maven 或 Gradle 等构建工具自行处理。
  2. 如果两个团队使用不同的构建工具,是否更容易因为他们的不同贡献而出现问题?
  3. 首先在一个存储库中维护多个 Java 包是否可行?


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

【问题讨论】:

  • 1.做什么? 2. 也许 3. 你认为 Java 包是什么? 4.由于我不知道你理解什么,我猜是的,是的。
  • 我真的不擅长措辞我的答案,但我几乎得到了下面我需要的东西。我真的不明白 Maven 或 Gradle 等工具已经处理了我需要的东西,而且我也不需要其他工具。

标签: java lerna monorepo


【解决方案1】:

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

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

设置multi-project build 后,您可以像这样添加兄弟项目作为依赖项:

dependencies {
    compile project(':sibling')
}

如果您使用支持 gradle 的 IDE,例如 Intellij IDEA,它会在您创建 gradle 项目时为您创建初始目录结构,并配置您通过其 UI 创建的新模块。稍微玩一下它可能是个好主意,以便了解它是如何连接起来的。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你的第一句话几乎得到了我的要求......我意识到,因为我对我所要求的内容并不太了解,所以它没有多大意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2012-01-03
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2013-02-20
    • 2011-03-18
    相关资源
    最近更新 更多