使用gradle构建java项目

栏目: 编程工具 · 发布时间: 6年前

内容简介:gradle 是一个让构建自动化的工具,类似于maven,ant的功能.使用gradle可以给java项目编译,单元测试,打包,或者生成可执行的jar包等gradle依赖java环境,所以使用gradle前需要安装jdk 或jre

gradle 是什么

gradle 是一个让构建自动化的工具,类似于maven,ant的功能.

使用gradle可以给 java 项目编译,单元测试,打包,或者生成可执行的jar包等

gradle的依赖环境

gradle依赖java环境,所以使用gradle前需要安装jdk 或jre

gradle 构建项目的流程

gradle的构建依赖于task, task可以指定与其他task之间的依赖关系 比如,有两个task,walk 和bike,如果指定walk依赖bike,那么 执行walk前会先执行bike.

task的来源有两种:

  1. 1.插件提供,gradle有很多现成的插件 ;

使用gradle构建java项目

  1. 2.自定义:在build.gradle 文件中声明task

使用gradle构建java项目

task 能实现哪些功能

下面是一些常用的基本功能

复制

<strong>task walk(description:'walk') {
    doLast {
        copy {
            into 'demo'
            exclude '**/.svn/**'
            from('README.md')
        }
    }
}</strong>

删除

<strong>task walk(description:'walk') {
    doLast {
        println 'walk...'
      
        project.delete {
            delete 'README.md'
            followSymlinks = true
        }
        
    }
}</strong>

如何执行任务

方式一:使用全局命令

gradle <任务名>

使用gradle构建java项目

方式二:使用项目中的脚本

./gradlew <任务名>

使用gradle构建java项目

引入本地jar包

compile project.fileTree(dir:'/Users/whuanghkl/code/mygit/myproject/target',include:['io0007-0.0.1.jar'])

gradle的插件有哪些

参考 https://docs.gradle.org/current/userguide/userguide.html

使用gradle构建java项目

如何查询依赖的版本

gradle中依赖的仓库有多种:

使用gradle构建java项目

参考: https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.dsl.RepositoryHandler.html

我们可以选择 maven仓库:

repositories {
    mavenCentral()
}

那么查询依赖就和maven一样了.

生成可执行的jar包

我的项目是spring boot,所以需要引入插件'org.springframework.boot'

id 'org.springframework.boot' version '2.0.3.RELEASE'

需要在build.gradle 文件中 指定可执行jar的main class :

jar {
    manifest {
        attributes 'Main-Class': 'com.kunlunsoft.Application'
    }
}

执行任务bootJar 就可以生成可执行的jar包

使用gradle构建java项目 使用gradle构建java项目

gradle 与maven相比有哪些优势

  1. 因为基于 groovy,功能更强大,可以很方便的自定义任务;
  2. 添加依赖更简洁方便,maven 需要三行,gradle只需要一行;
  3. 任务的执行流程更灵活,不像maven的生命周期那么固定.

我项目中完整的build.gradle 文件如下:

plugins {
    id 'java'
    id 'base'
//    id 'application'
    id 'org.springframework.boot' version '2.0.3.RELEASE'
}


//mainClassName = "com.kunlunsoft.Application"
group 'com.kunlunsoft'
version '1.0.0-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes 'Main-Class': 'com.kunlunsoft.Application'
    }
}
task walk(description:'walk') {
    doLast {
        println 'walk...'
    }
}



dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile("org.springframework.boot:spring-boot-starter-test")
    //数据源
    compile 'org.springframework.boot:spring-boot-starter:1.5.14.RELEASE'
    compile 'org.springframework.boot:spring-boot-starter-web:1.5.14.RELEASE'
    compile 'org.springframework.boot:spring-boot-starter-data-redis:1.5.14.RELEASE'
    compile 'mysql:mysql-connector-java:5.1.38'

    compile project.fileTree(dir:'/Users/whuanghkl/code/myproject/target',include:['io0007-0.0.1-SNAPSHOT.jar'])
    compile 'com.google.guava:guava:23.0-rc1'
    compile 'org.apache.commons:commons-email:1.5'
    compile 'org.codehaus.jackson:jackson-mapper-lgpl:1.9.12'
    //redis
//    compile 'org.springframework.data:spring-data-redis:1.8.13.RELEASE'
    compile 'redis.clients:jedis:2.9.0'
    compile 'org.springframework.statemachine:spring-statemachine-core:1.2.0.RELEASE'
    compile 'com.alibaba:fastjson:1.2.47'

//配置mybatis
    compile "org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1"

    compile 'org.springframework.boot:spring-boot-gradle-plugin:1.5.14.RELEASE'
//    compile 'org.springframework:springloaded:1.5.14.RELEASE'
}

参考:https://my.oschina.net/huangweiindex/blog/1844872

https://my.oschina.net/huangweiindex/blog/1842459


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Game Engine Architecture, Second Edition

Game Engine Architecture, Second Edition

Jason Gregory / A K Peters/CRC Press / 2014-8-15 / USD 69.95

A 2010 CHOICE outstanding academic title, this updated book covers the theory and practice of game engine software development. It explains practical concepts and techniques used by real game studios,......一起来看看 《Game Engine Architecture, Second Edition》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具