gradle配置_Gradle配置

本文深入介绍了Gradle配置,包括其作为开源构建工具的功能、与Maven和Ant的区别,以及Java项目结构。重点讨论了Gradle的各种配置选项,如实施、API、编译时和运行时依赖等,帮助开发者更好地理解和使用Gradle进行项目构建。
摘要由CSDN通过智能技术生成

gradle配置

在这篇文章中,我们将介绍有关Gradle配置的综合文章。

1.技术

Gradle是用于自动任务管理的开源构建工具。 它基于Apache Ant,Apache Maven的概念。 Gradle是使用Groovy语言开发的。 Gradle是使用基于Groovy的领域特定语言(DSL)开发的。 Gradle构建以Apache Maven的形式包含Groovy语言的任务,而Apache Ant构建文件为XML格式。

Gradle使用有向无环图(DAG)确定执行任务的顺序。 Gradle是为多项目构建而设计的,这意味着一个项目将有许多子项目,并且可以增长到很多子项目。 Gradle的独特功能是通过智能确定构建树的哪些部分被修改,哪些未被修改,来支持增量构建。 如果树中的某些部分未修改,则将通过显示最新状态来跳过它,而其他部分将被重新执行,这将减少项目的构建时间。

2. Java项目结构

与Maven目录结构类似,Gradle的项目结构还将包含src / main / java和src / main / resources用于Java类和类路径资源,src / test / java和src / test / resources将包含测试类和相应地测试资源。

3.Gradle配置

Gradle是指定依赖项的基本概念。 使用配置,我们可以用来指定依赖关系,这些依赖关系可以在本地缓存或Maven Central存储库或在Gradle构建文件中配置的任何存储库中。

通过将Maven构建文件(pom.xml)和ant构建文件(build.xml)导入Gradle构建文件(build.gradle),还支持Gradle。

默认情况下,Gradle支持以下配置:

实施

实施配置应视为默认配置。 我们使用它来声明我们不想暴露给使用者的编译时的依赖项。 引入此配置是为了替换已弃用的编译配置,以避免污染使用者的编译时,而实际上我们不想暴露这些依赖。

a)Gradle将依赖项添加到编译类路径中,并将该依赖项打包到生成输出中。 但是,当您的模块配置实现依赖项时,它会让Gradle知道您不希望该模块在编译时泄漏对其他模块的依赖项。 即,该依赖关系仅在运行时可用于其他模块。

b)使用此依赖项配置而不是API或编译(不建议使用)可以显着缩短构建时间,因为它减少了构建系统需要重新编译的模块数量。 例如,如果实现依赖项更改了其API,则Gradle仅重新编译该依赖关系以及直接依赖于该依赖关系的模块。 大多数应用程序和测试模块应使用此配置。

API

我们使用API​​配置确实声明了属于我们API的依赖项,即声明了我们明确希望暴露给使用者的依赖项。 这是唯一将依赖项暴露给使用者的编译时的标准配置。

a)Gradle将依赖项添加到编译类路径并生成输出。 当模块包含API依赖项时,它会让Gradle知道该模块希望将该依赖项可传递地导出到其他模块,以便它们在运行时和编译时都可用。

b)此配置的行为就像编译一样,但是您应谨慎使用它,并且仅应将需要的依赖项可传递地导出到其他上游使用者。 这是因为,如果API依赖项更改了其外部API,则Gradle会在编译时重新编译所有可以访问该依赖项的模块。 因此,拥有大量的API依赖关系会大大增加构建时间。 除非您希望将依赖项的API公开给单独的模块,否则库模块应该使用实现依赖项。

仅编译

使用compileOnly配置,可以声明仅在编译时才可用的依赖项,而在运行时不可用。 例如Project,Lombok是库,它在编译时修改字节码,并通过使用注释将更多方法添加到类中。 一旦生成了更新的字节码,就无需在类路径中显示字节码,因为这些类型的库将使用此配置。

仅运行时

Gradle仅将依赖项添加到生成输出中,以在运行时使用。 也就是说,它不会添加到编译类路径中。 例如,数据库驱动程序,我们曾在配置中指定驱动程序的类名,但并不需要在编译时显示,它仅在运行时有用。

注释处理器

要在作为注释处理器的库上添加依赖项,必须使用注释处理器配置将其添加到注释处理器类路径中。 这是因为使用此配置可​​以通过将编译类路径与注释处理器类路径分开来提高构建性能。 如果Gradle在编译类路径上找到注释处理器,则会停用编译回避,这会对构建时间产生负面影响(在编译类路径上找到5.0级及更高版本的忽略注释处理器)。

测试实施

与实现配置类似,测试实现配置用于指定在测试的编译和运行期间可用的依赖项。 例如,仅在编译或执行测试时才需要Junit和Mocking库。

testCompileOnly

与编译类似,仅依赖项仅在测试类编译时可用,而在测试运行时不可用。

testRuntimeOnly

类似于runtimeOnly,这些依赖项在执行测试时可用,但在测试编译时不可用。

以上都是默认情况下Gradle提供的配置,我们可以使用自定义配置,在自定义任务中指定这些自定义配置。 Gradle还支持配置中的继承。 我们可以使用配置中来自属性的扩展来指定基本配置。

configurations {
  testCompileOnly.extendsFrom compileOnly
}

所有完整的配置依赖项都将被复制到testCompileOnly Configuration,这将删除Gradle构建文件中的重复规范。

4. Gradle配置–结论

在当前博客中,我们了解了Gradle构建工具,并增加了Gradle相对于Maven,Ant构建工具的优势。 我们详细研究了Gradle配置,在其中如何指定每个配置级别的依赖项。

在本文中,我将描述您需要工程师利用Gradle注意Java Web应用程序的所有内容 。 我已经完成了无数的Java大冒险,而Gradle可以想象得到。 它提供快速的监督和运输。 利用Gradle轻松安排您的事业。

翻译自: https://www.javacodegeeks.com/gradle-configuration.html

gradle配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值