網(wǎng)上大部分的上傳文件都是只能上傳android lib的褪尝,java lib會報錯发魄,下面的主要解決這個問題
創(chuàng)建一個文件maven_upload.gradle
如果你只有一個庫需要上傳豪娜,那你可以在庫的目錄下
如果你有很多庫要上傳,那么建議你放在項目根目錄
apply plugin: 'maven'
def isReleaseBuild() {
return VERSION_NAME.toUpperCase().contains("SNAPSHOT") == false
}
def getRepositoryUsername() {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
def getRepositoryUrl() {
return isReleaseBuild() ? RELEASE_REPOSITORY_URL : SNAPSHOT_REPOSITORY_URL
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = GROUP
pom.artifactId = POM_ARTIFACT_ID
pom.version = VERSION_NAME
repository(url: getRepositoryUrl()) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
}
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
}else{
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
}
//解決 JavaDoc 中文注釋生成失敗的問題
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
artifacts {
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
archives androidSourcesJar
archives androidJavadocsJar
} else {
archives sourcesJar
archives javadocJar
}
}
}
然后就是填參數(shù)刨沦,參數(shù)一般寫在gradle.properties中呼巷,如果你的項目的lib都是不相關(guān)的,那么你可以在你的lib目錄中寫gradle.properties。如果你想把一系列的lib打包成一個庫薄声,那么最好在項目根目錄中寫gradle.properties
比如
//上傳構(gòu)件的信息当船,一般是包名,例如:com.jakewharton
GROUP=com.XXXXX
//上傳的目標(biāo)倉庫地址,一般不改
SNAPSHOT_REPOSITORY_URL=XXXXX
RELEASE_REPOSITORY_URL=XXXXX
//Nexus的私服的用戶名稱和密碼,一般不改
NEXUS_USERNAME=XXXXX
NEXUS_PASSWORD=XXXXX
然后在lib庫中定義版本和id
//正式版只能迭代不能覆蓋默辨,測試版用-SNAPSHOT結(jié)尾(這是硬性規(guī)定德频,否則無法上傳成功)
VERSION_NAME=1.0.0-SNAPSHOT
//例如:butterknife-runtime
POM_ARTIFACT_ID=XXXXX
然后就可以在右邊的gradle中,找到lib庫——>Tasks——>upload——>uploadArchives
愉快的上傳到了maven庫