需求:
最近在学习组件化,自己尝试着使用nexus搭建本地仓库,上传自己的aar包到仓库
上传aar包代码
maven_push.gradle,单独保存到一个gradle文件中,方便引用
apply plugin: 'maven'
def maven_url = "http://127.0.0.1:8081/repository/debug/"
def m_Username = "admin"
def m_Password = "admin123"
def m_Name = "myName"
def m_Version = "1.0.1"
def m_GroupId = "com.test"
def m_Description = ""
def m_ArtifactId = "mylib"
def m_Type = "aar"
/**
* 生成代码的文档,没有这个,引用的包中会没有代码中的文档
*/
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
failOnError false
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
uploadArchives {
repositories {
mavenDeployer {
repository(url: maven_url) {
authentication(userName: m_Username, password: m_Password)
}
pom.project {
name m_Name
version m_Version
artifactId m_ArtifactId
groupId m_GroupId
packaging m_Type
description m_Description
}
}
}
}
在Module工程中的build.gradle中引用maven_push.gradle文件
apply from: './maven_push.gradle'
这句话不要写在最后,写在dependencies节点前就行,因为我发现写在最后上传的时候,会出现第三方包解析错误
补充
错误: 编码GBK的不可映射字符
在根build.gradle中的allprojects节点下增加以下代码,基本就可以解决生成javadoc时的错误
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
引用自己的包
在根build.gradle中的allprojects节点下的repositories节点中增加以下节点
maven {
url "http://127.0.0.1:8081/repository/debug/"
}