前期準備
安裝JDK環(huán)境端逼。用Nexus新建Release或Snapshot maven倉庫粘室。
Android Studio
創(chuàng)建project
包名com.maven.studio
創(chuàng)建library
包名com.maven.studio.library
寫代碼
新建GradleTest
類
package com.maven.studio.library;
public class GradleTest {
public void display(){
System.out.println("gradle test");
}
}
新建gradle.properties
在library
module 下新建gradle.properties
溉知,并配置:
VERSION=1.0
GROUP_ID=com.maven.studo.library
ARTIFACT_ID=test
RELEASE_URL=http://192.168.86.130:8081/repository/{release倉庫名}/
SNAPSHOT_URL=http://192.168.86.130:8081/repository/{snapshot倉庫名}/
NAME=admin
PASSWORD=admin123
當然在工程目錄下的gradle.properties
配置遣鼓,也是可以的酸役。192.168.86.130
是maven倉庫ip地址栗竖。
新建gradle上傳腳本
在library module下,新建maven_push.gradle
apply plugin: 'maven'
apply plugin: 'signing'
configurations {
deployerJars
}
repositories {
mavenCentral()
}
// 判斷版本是Release or Snapshots
def isReleaseBuild() {
return !VERSION.contains("SNAPSHOT");
}
// 獲取倉庫url
def getRepositoryUrl() {
return isReleaseBuild() ? RELEASE_URL : SNAPSHOT_URL;
}
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment {
MavenDeployment deployment -> signing.signPom(deployment)
}
pom.version = VERSION
pom.artifactId = ARTIFACT_ID
pom.groupId = GROUP_ID
repository(url: getRepositoryUrl()) {
authentication(userName: NAME, password: PASSWORD) // maven授權信息
}
}
}
}
// 進行數(shù)字簽名
signing {
// 當 發(fā)布版本 & 存在"uploadArchives"任務時维咸,才執(zhí)行
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
snapshot版是不需要進行數(shù)字簽名的剂买,但release必須數(shù)字簽名。
更多任務
例如對工程生成javadoc.jar癌蓖、上傳source.jar瞬哼,只要在maven_push.gradle
加上:
// type顯示指定任務類型或任務, 這里指定要執(zhí)行Javadoc這個task,這個task在gradle中已經(jīng)定義
task androidJavadocs(type: Javadoc) {
// 設置源碼所在的位置
source = android.sourceSets.main.java.sourceFiles
}
// 生成javadoc.jar
task androidJavadocsJar(type: Jar) {
// 指定文檔名稱
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
// 生成sources.jar
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
// 產(chǎn)生相關配置文件的任務
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
導入上傳腳本
然后在library/build.gradle
導入maven_push.gradle
腳本:
apply from: 'maven_push.gradle'
執(zhí)行gradle上傳任務
然后Sync gradle
一下,會發(fā)現(xiàn)Gradle任務窗口租副,多了upload
任務快倒槐,里面有uploadArchives
task. 右鍵->Run 或 雙擊
顯示BUILD SUCCESS
后,打開nexus界面-> component
com.maven.studio.library
上傳成功附井!
Gradle引入依賴
gradle配置
修改工程根目錄build.gradle
:
allprojects {
repositories {
jcenter()
// maven { url "http://192.168.86.130:8081/repository/{release倉庫名}/" }
maven { url "http://192.168.86.130:8081/repository/{snapshot倉庫名}/" }
}
}
修改module下的build.gradle
dependencies {
...
// groupId : artifactId : version
compile 'com.maven.studio.library:test:1.0-SNAPSHOT'
}
Sync gradle
同步一下maven倉庫讨越,如果gradle build
完成,證明成功引入依賴了永毅。
寫代碼
成功引入com.maven.studio.library
依賴把跨!
相關閱讀:
《InteliJ上傳Java項目到Maven倉庫》
《發(fā)布Android Library到Bintray、JCenter》