1:建立一個AS工程,建立目錄結構如圖

2:在buildSrc文件夾下面,建立兩個.groovy文件,分別為ProjectVersion.groovy 和 ReleaseVersionTask.groovy
其中ReleaseVersionTask.groovy代碼為:
package com.groovytest; import org.gradle.api.DefaultTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction class ReleaseVersionTask extends DefaultTask{ @Input Boolean release @OutputFile File destFile ReleaseVersionTask(){ group='versioning' description='Makes project a release version.' } @TaskAction void start(){ project.version.release=true; ant.propertyfile(file:destFile){ entry(key:'release',type:'string',operation:'=',value: 'true') } } }
ProjectVersion.groovy代碼為:
package com.groovytest;
class ProjectVersion{
Integer major
Integer minor
Boolean release
ProjectVersion(Integer major, Integer minor){
this.major=major
this.minor=minor
this.release=Boolean.FALSE
}
ProjectVersion(Integer major, Integer minor, Boolean release){
this.major=major
this.minor=minor
this.release=release
}
@Override
String toString(){
"$major.$minor${release?'': '-SNAPSHOT'}"
}
}
3: 在buildSrc下面建立一個build.gradle文件

build.gradle內容為:
apply plugin: 'groovy'
apply plugin: 'maven'
version = '1.0'
group = 'com.groovytest'
archivesBaseName = 'releaseVersionTask'
repositories {
mavenCentral()
}
dependencies {
// 編譯的時候我們需要使用Gradle中的API
compile gradleApi()
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:D:\\Android_Develop\\gradle_project\\local_maven")
}
}
}
其中"file:D:\\Android_Develop\\gradle_project\\local_maven"為你自定義的本地倉庫地址:
4:根目錄下面的build.gradle內容如下:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
5:setting.gradle內容如下:

6:在根目錄下面執行gradle uploadArchives

7:查看本地文件夾下面有了相應的jar文件

8:在其他工程中使用這個Jar文件,AS新建一個工程,可以選擇空項目,目錄配置如下:

9:在根目錄下面的build.gradle如下:

build.gradle內的代碼如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
/*
使用本地倉庫
*/
maven {
url 'file:D:\\Android_Develop\\gradle_project\\local_maven'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
//依賴本地jar
classpath 'com.groovytest:releaseVersionTask:1.0'
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url 'file://D:\\Android_Develop\\gradle_project\\local_maven'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
10:現在可以在build.gradle里面使用了,import com.groovytest;是可以找的到的,如圖,如果配置不對是找不到的。

11:如果我們想在app下面的build.gradle 以及.java里面使用,那我們要配置app下面的build.gradle

12:首先我們配置app下面的 build.gradle,最關鍵的就是設置dependencies:如圖

13:然后我們就可以在build.gradle 以及test.java下面使用了


注意:一開始,我想着在根目錄下面的build.gradle來生成jar,也就是說一開始沒有下圖的1文件,只有2文件,並且2文件里面設置upload代碼,這個時候編譯也能通過,但是呢生成的.jar是不能用的,如圖
只有1kb,也就是沒有生成成功,並且其他項目也無法導入。

