热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gradle使用入门

2019独角兽企业重金招聘Python工程师标准什么是Gradle?流程的Java项目构建工具之一。Ant、Maven的继任者。Gradle有什么特色业界有很多

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

什么是 Gradle?

流程的 Java 项目构建工具之一。Ant、Maven 的继任者。

Gradle 有什么特色

业界有很多款流行的项目构建工具。Gradle 有哪些优点?

学习门槛低:
使用方法法和 Ant, Maven 近似。很好的支持 Java 的编译、测试、打包发布等项目构建工作。兼容 Maven 的程序库。

配置简洁:
基于 Groovy 动态语言的配置文件,配置比 XML 简洁很多。Groovy 语言,是一种近似 Python、Ruby 的脚本解释语言。

插件众多:
可以通过插件来扩展功能。

安装

1. 下载和解压文件

$ wget --no-check-certificate https://services.gradle.org/distributions/gradle-1.12-all.zip
$ unzip gradle-1.12-all.zip -d $HOME/opt

2. 在 Bash 配置中增加路径配置
编辑 ~/.bash_profile 文件,增加下面的语句。

GRADLE_HOME=$HOME/opt/gradle-1.12PATH=$GRADLE_HOME/bin:$PATHexport PATH

3. 验证生效

$ source ~/.bash_profile
$ gradle -v

如果看到如下信息,则安装成功。

------------------------------------------------------------
Gradle 1.12
------------------------------------------------------------Build time: 2014-04-29 09:24:31 UTC
Build number: none
Revision: a831fa866d46cbee94e61a09af15f9dd95987421Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy: 2.2.0
JVM: 1.6.0_32 (Sun Microsystems Inc. 20.0-b12-internal)
OS: Linux 2.6.18-164.el5 amd64

如果出现异常,可能需要检查下Java是否已安装,或者是否可以正常使用。

用 Gradle 管理项目

创建一个最简单的 Java 项目。
一般情况下,代码树结构如下:

$ mkdir demo
$ cd demo
$ mkdir -p src/main/java src/main/resources src/test/java src/test/resources
$ vim src/main/java/Main.java

Main.java 的内容

public class Main {public static void main(String args[]) {System.out.println("Hello world!");}}

在项目的根目录下,新建 Gradle 的构建配置文件 build.gradle

加入最简单的构建配置:

apply plugin: 'java'

然后执行

$ gradle build

:compileJava
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:buildBUILD SUCCESSFULTotal time: 4.371 secs

出现上面的提示,说明源代码编译成功

$ tree build
build|-- classes    | `-- main         | `-- Main.class|-- dependency-cache|-- libs    | `-- demo.jar`-- tmp     `-- jar`-- MANIFEST.MF

可以看到 Main.class 文件和 jar 文件都在 build 目录下生成了。

怎么添加依赖关系?

比如常用的,我需要使用 log4j2 来打印日志

将 Main.java 的代码改为以下内容

import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger; public class Main {private static final Logger LOG = LogManager.getLogger(Main.class);     public static void main(String args[]) {LOG.info("test log");LOG.error("error message");LOG.warn("warning message");System.out.println("Hello world!");}}

这时在执行 gradle build 就会报 BUILD FAILED

需要在 build.gradle 中加入依赖关系,在其中增加下面的配置

repositories {mavenCentral()} 
dependencies {compile 'org.apache.logging.log4j:log4j-api:2.0-rc1'runtime 'org.apache.logging.log4j:log4j-core:2.0-rc1'}

然后再执行 gradle build
会根据依赖设置,自动下载 log4j 的jar包,然后完成编译。

怎么执行类的 main 函数?

apply plugin:'application'mainClassName = "org.gradle.sample.Main"

使用命令 gradle run 运行

生成 eclipse 项目文件

apply plugin: 'eclipse'

运行 gradle eclipse
然后会自动生成 .project .classpath 等eclipse相关的项目配置文件

jar 指定 Main Class

mainClassName = 'com.xxx.Main'jar {manifest.attributes("Main-Class": mainClassName)} 打 fat jar

需要用到一个 Gradle 的插件,插件也能通过配置来自动添加。

buildscript {repositories {mavenCentral()} dependencies {classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1'}} 
apply plugin: 'fatjar' 
mainClassName = 'com.xxx.Main' 
fatJar {classifier 'fat'     // We need to add the main class to the manifest, otherwise the JAR won't start.manifest {attributes 'Main-Class': mainClassName    }     // We have to exclude signature files from the fat JAR, otherwise we'll get invalid signature file digest errors.exclude 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/*.SF'}
使用 JUnit 单元测试

dependencies一节加入 Junit 的依赖关系

repositories {mavenCentral()} 
dependencies {testCompile 'junit:junit:[4,)'}

测试命令

$ gradle test

测试失败时,会看到类似如下简要的错误信息。

:testnet.leiqing.input.TestInputReader > testReader1 FAILEDorg.junit.ComparisonFailure at TestInputReader.java:381 test completed, 1 failed
:test FAILED

生成更详细的测试报告,可以用下面的命令

$ gradle test -i

详尽的HTML格式的测试报告会生成在 build/reports/tests 目录下。

设置缺省任务

一般来讲运行 gradle 多数时间就是运行 build 任务。
在 build.gradle 中加入下面的配置。

defaultTasks 'clean', 'build'

这样只需要执行

$ gradle

就自动执行 clean 和 build 任务了。
就可以少敲5个字母了。保护手腕,保护键盘。 :)

VIM 语法高亮配置

不废话了,项目地址在 GitHub: vim-gradle
安装方法在 README 上已经说明。

Sublime Text 语法高亮

包名:Gradle_Language

快速生成 Gradle 项目

创建一个目录,进入目录,然后执行命令:

$ gradle init --type java-library 使用 daemon 加速

在 .bash_profile 中添加

export GRADLE_OPTS="-Dorg.gradle.daemon=true" 自定义源代码目录结构

// 自定义源代码目录结构
sourceSets.main {java.srcDirs 'src'
}
自定义 Jar 包文件名

archivesBaseName = 'your-jar-file-name' 依赖本地目录下的 jar

apply plugin: 'java'
dependencies {compile fileTree(dir: 'libs', include: '*.jar')
}

这样就可以直接依赖 libs 目录下所有的 jar 文件了。



转:https://my.oschina.net/benqend/blog/477726



推荐阅读
author-avatar
mobiledu2502926503
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有