文章目錄
- Idea中配置
- Gradle項目
- project目錄
- settings.gradle
- build.gradle
- gradlew
- gradlew.bat
- Gradle Build生命周期
- 編寫Settings.gradle
- 編寫Build.gradle
- Tasks
- Plugins
Idea中配置
配置項:gradle位置 及倉庫位置
Gradle項目
Task,settings.gradle,build.gradle,wrapper 核心概念
project目錄
settings.gradle
如配置root project 及 sub project
rootProject.name = 'poi'include 'poi', 'poi-ooxml-full', 'poi-ooxml-lite-agent', 'poi-scratchpad','poi-ooxml', 'poi-excelant', 'poi-examples', 'poi-integration' , 'poi-ooxml-lite'
build.gradle
配置依賴,插件,鏡像源的地方
plugins {id 'java'
}group = 'org.example'
version = '1.0-SNAPSHOT'repositories {maven { url 'https://maven.tuna.tsinghua.edu.cn/nexus/content/groups/public' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.jуйyiyun.com/repository/central' }// 其他國內鏡像源}dependencies {testImplementation platform('org.junit:junit-bom:5.10.0')testImplementation 'org.junit.jupiter:junit-jupiter'
}test {useJUnitPlatform()
}
gradlew
Linux或者Mac系統下Wrapper執行腳本
gradlew.bat
Windows系統下Wrapper執行腳本
Gradle Build生命周期
編寫Settings.gradle
等價于Settings()對象,settings.gradle可以調用本身的屬性和方法進行配置
具體Property和Method查官網API
rootProject.name = 'poi'include 'poi', 'poi-ooxml-full', 'poi-ooxml-lite-agent', 'poi-scratchpad','poi-ooxml', 'poi-excelant', 'poi-examples', 'poi-integration' , 'poi-ooxml-lite'
編寫Build.gradle
等價于Project()對象,可以調用屬性和方法進行配置、
依賴引入直接去Maven倉庫里找對應包cv即可
/*插件*/
plugins {id 'java'
}
/*遠程倉庫地址*/
repositories {maven { url 'https://maven.tuna.tsinghua.edu.cn/nexus/content/groups/public' }maven { url 'https://maven.aliyun.com/repository/central' }maven { url 'https://maven.jуйyiyun.com/repository/central' }// 其他國內鏡像源}/*依賴*/
dependencies {implementation("com.google.guava:guava:32.1.1-jre")testImplementation platform('org.junit:junit-bom:5.10.0')testImplementation 'org.junit.jupiter:junit-jupiter'// https://mvnrepository.com/artifact/org.apache.poi/poiimplementation group: 'org.apache.poi', name: 'poi', version: '5.2.3'
// https://mvnrepository.com/artifact/org.apache.pdfbox/pdfboximplementation group: 'org.apache.pdfbox', name: 'pdfbox', version: '3.0.1'
}
Tasks
-
Lifecycle tasks
生命周期內的task
-
Actionable tasks
單獨一個任務
/*有依賴的task*/
tasks.register('hello') {doLast {println 'Hello world!'}
}
tasks.register('intro') {dependsOn tasks.hellodoLast {println "I'm Gradle"}
}/*指定group*/
tasks.register("hello") {group = "Custom"description = "A lovely greeting task."doLast {println("Hello world!")}
}
Plugins
分為Core plugins ,Community plugins ,和local plugins
/*core plugin id一個參數即可*/
plugins {id("java")
}
/*community plugin 一般id和version兩個參數*/
plugins {id ?plugin id? version ?plugin version?
}
插件必須在settings.gradle指定,且在最前行
pluginManagement {plugins {}resolutionStrategy {}repositories {}
}
rootProject.name = 'plugin-management'