一、背景

  Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
Gradle的主要功能:
  • 按约定声明构建和建设;
  • 强大的支持多工程的构建;
  • 强大的依赖管理(基于Apache Ivy),提供最大的便利去构建工程;
  • 全力支持已有的 Maven 或者Ivy仓库基础建设;
  • 支持传递性依赖管理,在不需要远程仓库和pom.xml和ivy配置文件的前提下;
  • 基于groovy脚本构建,其build脚本使用groovy语言编写;
  • 具有广泛的领域模型支持构建;
  • 深度 API;
  • 易迁移;
  • 自由和开放源码,Gradle是一个开源项目,基于 ASL 许可。
为什么使用Groovy:
  完整的Gradle API是使用Groovy语言设计的。这是基于XML内部 DSL 的优点。Gradle是其核心的通用构建工具; 它的主要焦点是Java项目。在这些项目中,团队成员要熟悉Java,这是为了更好的构建透明,给所有团队成员的项目。类似于 Python,Groovy或Ruby语言是最好的构建框架。为什么Groovy被选中?这是因为它为使用Java的人提供了迄今为止最大的透明度。Groovy的基本语法与Java是一样的。

二、Gradle 的安装配置

下载

https://services.gradle.org/distributions/

安装过程直接解压即可

配置环境变量

Gradle ==> 简介

然后在Path中添加 %GRADLE_HOME%\bin

如果需要指定 gradle 项目本地仓库的目录,则增加一个 GRADLE_USER_HOME 环境变量的配置,目录指定本地仓库的目录,如下:

Gradle ==> 简介

测试

在命令行窗口输入:gradle -v 或 gradle -version

三、Gradle 常用命令

  • gradle build
    • 用于完全构建项目。执行命令执行后,Gradle 将会编译和测试你的代码,并生成一个包含所有类与资源的 JAR 文件;
  • gradle clean
    • 删除 build 目录和所有为build生成的文件;
  • gradle assemble
    • 编译并打包你的代码, 但是并不运行单元测试。其他插件会在这个任务里加入更多的步骤;
    • 举个例子,如果你使用 War 插件,这个任务还将根据你的项目生成一个 WAR 文件;
  • gradle check
    • 编译并测试你的代码. 其他的插件会加入更多的检查步骤.举个例子, 如果你使用 checkstyle 插件, 这个任务将会运行 Checkstyle 来检查你的代码;

四、Gradle构建Java项目

1、新建一个Java项目

2、配置 gradle.build

  在一个 Gradle 项目中一般会有多个 build.gradle 配置文件,我们通常配置最上层的 build.gradle 文件作用于整个工程,对于不同子工程/模块差异的依赖或需求,我们再到对应的 build.gradle 文件中进行配置。

先来看一个标准的 Gradle 项目配置,如下:

allprojects {
    group 'com.jack.course'
    version '1.0.0-SNAPSHOT'
    buildDir = 'target'

    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'maven'
}
subprojects {
    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    repositories {
        mavenLocal()
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        mavenCentral()
    }

    idea {
        module {
            downloadSources = true
            downloadJavadoc = false
            sourceDirs += file('src/main/resources')
        }
    }

    configurations {
        all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
        all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-api'
        all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-core'
        all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-1.2-api'
        all*.exclude group: 'org.slf4j', module: 'log4j-over-slf4j'
        all*.exclude group: 'org.slf4j', module: 'slf4j-ext'
        all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12'
        all*.exclude group: 'log4j', module: 'log4j'

        deployerJars
    }

    dependencies {
        compile('ch.qos.logback:logback-core:1.2.3')
        compile('ch.qos.logback:logback-classic:1.2.3')
        compile('org.projectlombok:lombok:1.18.8')
        compile('com.google.guava:guava:28.0-jre')
        compile('org.apache.commons:commons-lang3:3.9')
        compile('com.google.code.gson:gson:2.8.5')
    }
}
Gradle项目配置

相关文章:

  • 2022-12-23
  • 2021-09-06
  • 2021-12-29
  • 2021-09-21
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2022-01-05
  • 2022-01-30
  • 2021-09-23
  • 2021-10-21
  • 2021-09-04
  • 2021-09-04
  • 2022-02-26
相关资源
相似解决方案