使用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


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

查看所有标签

猜你喜欢:

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

深入理解TensorFlow:架构设计与实现原理

深入理解TensorFlow:架构设计与实现原理

彭靖田、林健、白小龙 / 人民邮电出版社 / 2018-5-1 / 79.00元

本书以TensorFlow 1.2为基础,从基本概念、内部实现和实践等方面深入剖析了TensorFlow。书中首先介绍了TensorFlow设计目标、基本架构、环境准备和基础概念,接着重点介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧接着还将TensorFlow与深度学习相结合,从理论基础和程序实现这两个方面系统介绍了CNN、GAN和RNN等经典模型,然后深入剖析了TensorF......一起来看看 《深入理解TensorFlow:架构设计与实现原理》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换