name && it.version) {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
dependencyNode.appendNode('scope', scope.name)
}
}
}
}
}
}
repositories {
maven {
//设置仓库地址和账号密码
url = NEXUS_MAVEN_URL
credentials {
username = NEXUS_USERNAME
password = NEXUS_PASSWORD
}
//下面是动态切换release仓库或snapshot仓库
// def releasesRepoUrl = "$buildDir/repos/releases"
// def snapshotsRepoUrl = "$buildDir/repos/snapshots"
// url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
}
}
}
}
在Module里build.gradle
文件里进行引用:
buildscript {
apply from: "../nexus-maven-publish.gradle"
}
plugins {
id 'com.android.library'
id 'com.github.dcendents.android-maven'
}
//后面的省略...
PS:buildscript要放在plugins之前
发布aar的步骤:
1.修改nexus-maven-publish.gradle
文件里定义的版本号POM_VERSION
注意下面的步骤执行的命令不是单个Module里的哦!!
2.清除数据和重新编译
3.发布(注意和上面的单Module有所不同)
本来想着自定义一个Task,实现上面的各命令的点击操作的,不然每次发布都要点个几次鼠标可太累了,但最终还是实现不了,如果有大佬路过可以在评论区指点一下,感激不尽
使用maven插件:
plugins {
id 'com.android.library'
id 'publishing'
id 'maven'
}
def NEXUS_MAVEN_URL = "http://localhost:9888/repository/maven-releases/"
def NEXUS_USERNAME = "admin"
def NEXUS_PASSWORD = "admin"
def POM_NAME = "webviewbase"
def POM_GROUP_ID = "site.starsone"
def POM_ARTIFACT_ID = "webviewbase"
def POM_VERSION = "1.0"
def POM_PACKAGING = "aar"
def POM_DESCRIPTION = "webviewbase基础库"
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: NEXUS_MAVEN_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
// snapshotRepository(url: NEXUS_MAVEN_SNAPSHOT_URL) {
// authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
// }
//'groupId:artifactId:version' 或 'groudId:artifactId:version@aar' 形式
pom.project {
name POM_NAME
groupId POM_GROUP_ID
artifactId POM_ARTIFACT_ID
version POM_VERSION
packaging POM_PACKAGING
description POM_DESCRIPTION
}
}
}
}
// 生成sources.jar 写 artifacts {} 之前
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
//编译的源码类型
archives androidSourcesJar
//archives androidJavadocsJar
}
android{
...
}
通过右侧的gradle菜单可以触发上传
依赖本地私有库(Maven)
步骤稍微有些繁琐,需要修改maven目录下的setting.xml
文件,不过改一次就好
1.serve配置
首先声明一下私有库的账号密码
注意这里的id是随意定义的,可以自由编写,但需要与下面的profile里的id对应
<server>
<id>localRepo</id>
<username>admin</username>
<password>admin</password>
</server>
这里看网上的介绍说,只是打包上传的时候maven会读取这里,实际上,如果私有库没有开放允许任何人访问(即我上面部署操作的步骤),到时候依赖的时候也会去根据id去读取这个server标签,否则到时候也是无法依赖的
2.profile配置
网上看其他资料,是去加了mirror,但实际上:
如果mirrors下即使有多个mirror配置,实际上只会去第一个mirror里找,找不到不会往下个mirror里找的
除非第一个mirror因为网络原因链接不上,才会触发到下一个mirror里去找依赖的操作逻辑
<profile>
<id>localRepoProfile</id>
<activation>
<jdk>1.8</jdk>
</activation>
<repositories>
<repository>
<id>localRepo</id>
<name>本地私