足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

使用gradle構(gòu)建java項目
2019-04-22 16:48:02   來源: hw1287789687   評論:0 點擊:

gradle 是什么 gradle 是一個讓構(gòu)建自動化的工具,類似于maven,ant的功能 使用gradle可以給java項目編譯,單元測試,打包,或者生成可執(zhí)行的jar包等 gradle的依賴環(huán)境 gradle依賴java環(huán)境,所以使用gradle前需要安裝jdk 或jre gradle 構(gòu)建項目的流程 gradle的構(gòu)建依賴于task, task可以指定與其他task之間的依賴關(guān)系

gradle 是什么

gradle 是一個讓構(gòu)建自動化的工具,類似于maven,ant的功能.
使用gradle可以給java項目編譯,單元測試,打包,或者生成可執(zhí)行的jar包等

gradle的依賴環(huán)境

gradle依賴java環(huán)境,所以使用gradle前需要安裝jdk 或jre

gradle 構(gòu)建項目的流程

gradle的構(gòu)建依賴于task, task可以指定與其他task之間的依賴關(guān)系 比如,有兩個task,walk 和bike,如果指定walk依賴bike,那么 執(zhí)行walk前會先執(zhí)行bike.

task的來源有兩種:

  1. 1.插件提供,gradle有很多現(xiàn)成的插件;


\
?

?

  1. 2.自定義:在build.gradle 文件中聲明task


\

?

task 能實現(xiàn)哪些功能

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

復(fù)制

?

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

??

?

刪除

?

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

參考:https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#N1512A?

?

?

?

?

如何執(zhí)行任務(wù)

方式一:使用全局命令

gradle <任務(wù)名>


\
?

方式二:使用項目中的腳本

./gradlew <任務(wù)名>


\
?

引入本地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中依賴的倉庫有多種:


\

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

我們可以選擇 maven倉庫:?

?

repositories {    mavenCentral()}

?

?

那么查詢依賴就和maven一樣了.

生成可執(zhí)行的jar包

我的項目是spring boot,所以需要引入插件'org.springframework.boot'
id 'org.springframework.boot' version '2.0.3.RELEASE'
需要在build.gradle 文件中 指定可執(zhí)行jar的main class :

?

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

?

?

執(zhí)行任務(wù)bootJar 就可以生成可執(zhí)行的jar包


\

\
??

gradle 與maven相比有哪些優(yōu)勢

  1. 因為基于 groovy,功能更強(qiáng)大,可以很方便的自定義任務(wù);
  2. 添加依賴更簡潔方便,maven 需要三行,gradle只需要一行;
  3. 任務(wù)的執(zhí)行流程更靈活,不像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.8targetCompatibility = 1.8repositories {    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")    //數(shù)據(jù)源    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

相關(guān)熱詞搜索:gradle groovy gradle部署 gradle構(gòu)建 language 編程語言

上一篇:瀏覽器廠商開始默認(rèn)支持WebAssembly格式
下一篇:最后一頁

分享到: 收藏