超级POM,Gradle中层级管理的父POM类型

超级POM,Gradle中层级管理的父POM类型,gradle,Gradle,我们目前正在使用Maven作为构建工具,并且有一个迁移到Gradle的指令。我们目前的设置是: 我们有一个超级POM,它定义了所有第三方依赖项、各种插件、DistributionManagementURL,这个POM被上传到我们的发布repo 我们有一个聚合器POM,它使用这个超级POM作为父模块并聚合几个子模块 我们在聚合器POM中定义了几个概要文件来构建组件 我的问题是,在Gradle做这一切的最好方式是什么。如何在单个Gradle配置中定义所有第三方依赖项并在其他地方使用它 我是格拉德尔的

我们目前正在使用Maven作为构建工具,并且有一个迁移到Gradle的指令。我们目前的设置是:

  • 我们有一个超级POM,它定义了所有第三方依赖项、各种插件、DistributionManagementURL,这个POM被上传到我们的发布repo
  • 我们有一个聚合器POM,它使用这个超级POM作为父模块并聚合几个子模块
  • 我们在聚合器POM中定义了几个概要文件来构建组件
  • 我的问题是,在Gradle做这一切的最好方式是什么。如何在单个Gradle配置中定义所有第三方依赖项并在其他地方使用它


    我是格拉德尔的新手,所以,这听起来可能是一个非常愚蠢的问题。但是我请求所有人提供一些帮助和指导。

    您可以编写一个Gradle插件并分发它,而不是超级POM。不确定你从2中得到了什么。但是如果在构建之间重用这些定义,它们将再次进入插件,或者进入父构建脚本。

    我执行以下操作:

    • 定义渐变脚本(类似于父pom)

    • 在我的build.gradle文件中应用它(类似于扩展)

      apply from:'https://youUrlHere/parent.gradle“

    有关更多信息,您可以在此处查看:


    希望这有帮助。

    您可以非常轻松地将父pom内容转换为Gradle init文件

    你需要采取行动

    • 存储库
    • 分销管理
    • 轮廓
    • 其他检查,如findbugs、checkstyle等
    在初始化脚本中

    细节是巨大的,你可以在这里找到我的完整信息


    如何在没有插件的情况下实现(1);在maven中,我只是定义了一个父pom,然后上传到我的releases repo中,并在其他pom中引用它?(2) 与多模块项目相同,我必须从中生成几个组件(webApp.war、soap-api.war等)。为了实现这一点,我在maven中定义了概要文件(webApp概要文件包括模块1、模块3;api概要文件包括模块1、模块2、模块5等);Gradle中的等效值是什么?我在Gradle的文档中没有找到任何东西。Gradle
    include
    不允许从中心位置实现这种灵活性。您可以将构建脚本上载到web服务器,但这比编写二进制插件有一些缺点(如果web服务器关闭,构建将失败)。Maven概要文件的“等价物”是构建脚本中的一个if语句,但很少需要它。Peter,我正试图理解您的观点。由于我是格拉德尔的新手,我抱着马文的心态,试图让格拉德尔适应马文的哲学。然而,我不想这样。你能帮我找到适合我这种情况的设计构建方面的最佳方法吗?maven到gradle迁移的主要原因是什么?进展如何?@Gevorg,我们想要使用gradle的主要原因之一是对构建步骤有更多的控制。对于maven,我们必须编写插件,而对于gradle,这些只是简单的groovy脚本。这种父级/聚合器POM最初是需要的,但随着组件的体系结构/设计的发展(对于迁移的应用程序),我们觉得不太需要这样的功能。总的来说,进展顺利。但我觉得这种迁移的复杂性因应用而异。