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,也就是沒有生成成功,並且其他項目也無法導入。