3.Gradle构建Java项目

1. Java开发

Java插件是Gradle自身装载的一个插件。Java插件提供的基本功能远比源代码编译和打包多。它为你的项目建立了一个标准的项目布局,并确保有意义、有顺序地执行任务。现在,为你的项目创建一个构建脚本并使用Java插件。

1.1 使用插件

使用java插件

apply plugin: 'java'

1.2 定制项目

可以修改项目和插件属性

apply plugin: 'java'

version = 0.1
// 设置java版本编译兼容1.6
sourceCompatibility = 1.6

jar {
    manifest {
        attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
    }
}

可以修改项目结构

apply plugin: 'java'

version = 0.1
sourceCompatibility = 1.6

// 指定打包jar的启动类属性
jar {
    manifest {
        attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
    }
}

// 修改项目结构
sourceSets {
    main {
        java {
            srcDirs = ['src']
        }
    }
    test {
        java {
            srcDirs = ['test']
        }
    }
}

// 指定编译后文件输出目录
buildDir = 'out'

1.3 使用外部依赖

定义仓库

repositories {
    // 配置对maven central仓库的访问快捷方式
    mavenCentral()
}

定义依赖

dependencies {
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
}

2. web开发

build.gradle

// 配置插件
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'

// 配置仓库地址
repositories {
    mavenCentral()
}

// 配置依赖
dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    runtime 'javax.servlet:jstl:1.1.2'
}

// 定制jetty插件
jettyRun {
    httpPort = 9090
    contextPath = 'todo'
}

// 改变web的源代码目录,默认webapp
webAppDirName = 'webfiles'

// 将css和js目录转移到war根目录下的static下
war {
    from 'static'
}

构建项目

gradle build

运行jetty

gradle jettyRun

3. Gradle包装器

它是 Gradle 的核心特性,能够让机器在没有安装 Gradle 运行时的情况下运行Gradle 构建。它也让构建脚本运行在一个指定的 Gradle 版本上。它是通过自动从中心仓库下载 Gradle 运行时,解压和使用来实现的。最终的目标是创造一个独立于系统、 系统配置和 Gradle 版本的可靠和可重复的构建。

3.1 配置包装器

在构建脚本中添加包装器任务

task wrapper(type: Wrapper) {
    //指定要使用的gradle版本
    gradleVersion = '5.0'
}

同时提供用于linux和windows使用的脚本 gradlew 和 gradlew.bat

3.2 使用包装器

gradlew.bat jettyRun

image-20200718144713357

当包装器任务被执行时,Gradle 运行时会被下载、解包并使用

3.3 定制包装器

task wrapper(type: Wrapper) {
    //请求的gradle版本
    gradleVersion = '5.0'
    //获取gradle包装器的地址
    distributionUrl = 'http://myenterprise.com/gradle/dists'
    //包装器被解压后存放的相对路径
    distributionPath = 'gradle-dists'
}

4. 参考

  1. 《实战Gradle 中文版》
原文地址:https://www.cnblogs.com/col-smile/p/13339467.html