gpt4 book ai didi

gradle 父 pom 之类的功能

转载 作者:行者123 更新时间:2023-12-03 07:19:56 24 4
gpt4 key购买 nike

在我的工作中,我们使用 Maven。我将第一次尝试 gradle。我们对所有项目使用一个公共(public)的父 pom,它具有常用 Maven 插件的设置和一些常见的依赖项。 gradle 中有类似的选项吗?

我的第二个问题是关于发布管理的。我们使用 Maven 发布插件,它对我们来说非常有用。 Gradle 中有类似的东西吗?

最佳答案

要在同一构建的多个项目中共享内容,请使用 allprojects { ... } , subprojects { ... }等。此外,在父项目中声明的额外属性 ( ext.foo = ... ) 在子项目中也是可见的。一个常见的习惯用法是有类似 ext.libs = [junit: "junit:junit:4.11", spring: "org.springframework:spring-core:3.1.0.RELEASE", ...] 的东西。在顶级构建脚本中。然后,子项目可以通过短名称有选择地包含依赖项。您应该能够在 Gradle Forums 中找到更多相关信息。 .

要跨构建共享逻辑,您可以编写一个脚本插件 ( foo.gradle ),将其放在 Web 服务器上,并将其包含在带有 apply from: "http://..." 的构建中,或编写一个二进制插件(实现 org.gradle.api.Plugin 的类),将其作为 Jar 发布到存储库,并将其包含在使用 apply plugin: ... 的构建中和一个 buildscript {}部分。详情见Gradle User Guide以及完整 Gradle 发行版中的许多示例。

脚本(但不是二进制)插件的当前限制是它们不会被缓存。因此,只有能够连接到为插件提供服务的 Web 服务器,构建才会成功。

至于你的第二个问题(应该是一个单独的问题),有几个可用的第三方发布插件,例如 https://github.com/townsfolk/gradle-release .

关于gradle 父 pom 之类的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15468109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com