1、背景java
2、Gradle 的安裝配置apache
下載api
https://services.gradle.org/distributions/併發
安裝過程直接解壓便可app
配置環境變量框架
而後在Path中添加 %GRADLE_HOME%\binmaven
若是須要指定 gradle 項目本地倉庫的目錄,則增長一個 GRADLE_USER_HOME 環境變量的配置,目錄指定本地倉庫的目錄,以下:ide
測試工具
在命令行窗口輸入:gradle -v 或 gradle -version單元測試
3、Gradle 經常使用命令
4、Gradle構建Java項目
一、新建一個Java項目
略
二、配置 gradle.build
在一個 Gradle 項目中通常會有多個 build.gradle 配置文件,咱們一般配置最上層的 build.gradle 文件做用於整個工程,對於不一樣子工程/模塊差別的依賴或需求,咱們再到對應的 build.gradle 文件中進行配置。
先來看一個標準的 Gradle 項目配置,以下:
allprojects { group 'com.jack.course' version '1.0.0-SNAPSHOT' buildDir = 'target' apply plugin: 'java' apply plugin: 'idea' apply plugin: 'maven' } subprojects { sourceCompatibility = 1.8 targetCompatibility = 1.8 repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } mavenCentral() } idea { module { downloadSources = true downloadJavadoc = false sourceDirs += file('src/main/resources') } } configurations { all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl' all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-api' all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-core' all*.exclude group: 'org.apache.logging.log4j', module: 'log4j-1.2-api' all*.exclude group: 'org.slf4j', module: 'log4j-over-slf4j' all*.exclude group: 'org.slf4j', module: 'slf4j-ext' all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12' all*.exclude group: 'log4j', module: 'log4j' deployerJars } dependencies { compile('ch.qos.logback:logback-core:1.2.3') compile('ch.qos.logback:logback-classic:1.2.3') compile('org.projectlombok:lombok:1.18.8') compile('com.google.guava:guava:28.0-jre') compile('org.apache.commons:commons-lang3:3.9') compile('com.google.code.gson:gson:2.8.5') } }
allprojects
subprojects 之下的是對全部子工程/模塊的構建配置
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories
idea
configurations
排除傳遞依賴的方式有兩種:
一、直接在configuration中排除
二、在具體的某個dependency中排除
configurations { compile.exclude module: 'commons' all*.exclude group: 'org.gradle.test.excludes', module: 'reports' } dependencies { compile("org.gradle.test.excludes:api:1.0") { exclude module: 'shared' } }
dependencies
指定依賴的 jar 包或模塊,語法以下:
dependencies { compile('org.projectlombok:lombok:1.18.8') compile('com.google.guava:guava:28.0-jre') }
模塊/工程間的依賴則是以下形式:
dependencies { compile project(":common") compile project(":env") }
SourceSets
用於指定不一樣的項目結構,以下:sourceSets { main { java { srcDir 'src/main/java' } resources { srcDir 'src/main/resources' } } }
指定源代碼存儲在 src/main/java 目錄下,資源文件存儲在 src/main/resources 目錄下,這是默認配置,能夠進行更改。
5、使用Maven插件發佈
apply plugin: 'maven-publish' # 指定包的groupId、artifactId和version方便之後引用 ext { pubGroupId = "com.jack.dubbo" pubProjectName = "dubbo-order-api" pubVersion = "0.0.1" } publishing { publications { publishing.publications.create("${pubProjectName}", MavenPublication) { groupId pubGroupId artifactId pubProjectName version pubVersion artifact jar } } // 配置發佈到哪裏 repositories { maven { // 指定要上傳的 maven 私服倉庫 url = "" // 認證用戶和密碼 credentials { username 'root' password 'admin' } } } }
通常在公司就是將項目發佈到私服供其餘項目使用,直接操做 publish,發佈到本地使用 publishToMavenLocal 便可。