Gradle 基础

简介: 一个项目构建工具,可以替代maven。 1.下载 去官网http://gradle.org 下载即可。 然后解压,在windows下,设置系统变量Path,追加gradle的bin目录即可,一个例子:D:\Users\yc_du.CN1\Downloads\gradle-2.10-bin\gradle-2.10\bin。 重新打开cmd,运行 gradle -v,即可验证。

一个项目构建工具,可以替代maven。

1.下载

去官网http://gradle.org 下载即可。

然后解压,在windows下,设置系统变量Path,追加gradle的bin目录即可,一个例子:D:\Users\yc_du.CN1\Downloads\gradle-2.10-bin\gradle-2.10\bin。

重新打开cmd,运行 gradle -v,即可验证。


图1 gradle -v 界面

由图1 可以明显地看出,gradle依赖于groovy和jvm。

1.1 .gradle/  目录

在windows环境,用户目录下会有.gradle/目录,可以在此目录中放一个gradle.properties文件。这样项目中的build.gradle脚本就可以直接用预先定义的变量了。

2.build.gradle

核心配置文件。

2.1插件

gradle中,插件是必不可少的。
使用方法,形如 apply plugin: 'pluginName'。
常见的有 java,eclipse等。
使用方法,apply plugin: 'java'。
默认项目结构
src/main/java目录包含core模块的源代码。
src/test/java目录包含core模块的单元测试。
src/main/resources目录包含app模块的资源文件。

指定java启动类。

jar {
    manifest {
        attributes 'Main-Class': 'com.yichudu.Student'
    }
}


2.2任务

gradle taskName 命令用于执行特定的任务。见下。
assemble 译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。
build 会执行一个完整的项目构建。
clean 删除构建目录。
compile 编译程序中的源代码。
eclipse //若文件中有eclipse plugin,则可以执行这个任务

2.3 项目依赖

支持maven中央仓库。

//指定仓库
repositories {
        mavenCentral()
        mavenLocal()
        maven {
            url = "公司私服"
        }
}
//指定依赖,格式为 'group:artifact:version'
dependencies{
	compile 'org.apache.httpcomponents:httpclient:4.3.3'
}


2.4 apply其他Gradle文件

当一个项目很复杂的时候,Gradle脚本也会很复杂,除了将子项目的配置移到对应项目的构建脚本之外,还可以可以按照不同的功能将复杂的构建脚本拆分成小的构建脚本,然后在build.gradle里使用apply from,将这些小的构建脚本引入到整体的构建脚本中去。比如在一个项目中既使用了Jetty,又使用了Cargo插件启动JBoss,就可以把他们分别提到jetty.gradle和jboss.gradle,然后在build.gradle里使用如下的代码将他们引入进来:

apply from: "jetty.gradle"
apply from: "jboss.gradle"

2.5 简单的例子

apply plugin: 'eclipse'
apply plugin: 'java'

repositories {  
        mavenCentral()  
        mavenLocal()   
}  
dependencies{
    compile 'org.apache.httpcomponents:httpclient:4.3.3'  
	compile 'org.apache.lucene:lucene-core:6.0.0'
	compile 'org.apache.lucene:lucene-analyzers-common:6.0.0'
	compile 'org.apache.lucene:lucene-demo:6.0.0'
}

3.多项目管理

3.1 根目录的build.gradle

一个大点的项目会有许多个工程。比如common,app-1,app-2等。可以用一个build.gradle统一管理,放在根目录中。
//所有子项目的公共配置
subprojects {
    apply plugin: 'java'
 
    repositories {
        mavenCentral()
    }
}
//每个项目的单独配置,也可以放在子项目目录中的build,gradle中。
project(':common'){
}
project(':app-1'){
}

3.2 settings.gradle

settings.gradle文件记录有哪些子工程,子工程名就是目录名

include 'common'
include 'app-1'
//或简化为一行
//include 'app-1','common'


3.3 子项目的build.gradle

可以在多个子项目中写各自的build.gradle。若app-1项目依赖另一个子项目common,则可以写:
dependencies {
    compile project(':common')
}


目录
相关文章
|
7月前
|
Java 程序员 API
Gradle笔记 二 Gradle的基础Groovy
Gradle笔记 二 Gradle的基础Groovy
78 0
|
缓存 druid 前端开发
Gradle学习笔札
自学Gradle后的笔记
542 0
Gradle学习笔札
|
5月前
|
Java Maven 开发者
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
gradle项目对比maven项目的目录架构以及对gradle wrapper的理解
48 0
|
6月前
|
Java API Maven
Gradle 自动化项目构建-Gradle 核心之 Project
Gradle 自动化项目构建-Gradle 核心之 Project
63 0
|
7月前
|
Java
Gradle笔记 八 Gradle 插件(一)
Gradle笔记 八 Gradle 插件
149 0
|
7月前
|
存储 缓存 Java
Gradle笔记 八 Gradle 插件(二)
Gradle笔记 八 Gradle 插件
149 0
|
Java 编译器 API
Gradle筑基篇(五)-Gradle自定义插件实战
前面几篇文章笔者对Gradle的一些基础认知,groovy基础语法,以及Gradle 项目中常用的一些api进行了讲解。今天笔者再来讲解一些关于`Gradle插件`的使用
|
缓存 ARouter Java
Gradle筑基篇(一)-Gradle初探
大家回想一下自己第一次接触`Gradle`是什么时候? 相信大家也都是和我一样,在我们打开第一个AS项目的时候, 发现有很多带gradle字样的文件:`setting.gradle, build.gradle,gradle.warpper`,以及在`gradle`文件中各种配置, 这些都是啥wy啊。。