如何搭建Maven私服请参考别的文章介绍,主要是nexus下载和安装部署,本日记只记录如何向Maven私服提交。 一般我们开发的通用组件,如果在A项目中使用,可以直接使用引入代码的方式;如果B项目也希望使用同样的组件功能,可以把A使用的代码拷贝一份给B,但是不是最合理的方式,而且会存在通用组件随着功能演化版本不统一的情况,这时候Maven的有点就体现出来了:可以把开发好的通用组件提交到Maven服务器上,内部项目以后使用的时候,直接在gradle的‘dependencies’中添加一行依赖即可。
####第一步: 在项目的根目录下修改gradle.properties,添加如下的配置:
MAVEN_REPO_RELEASE_URL=http://172.16.4.112:8081/nexus/content/repositories/releases/
MAVEN_REPO_SNAPSHOT_URL=http://172.16.4.112:8081/nexus/content/repositories/snapshots/
#对应maven的GroupId的值
GROUP = common
#登录nexus ossde的用户名
NEXUS_USERNAME=myusername
#登录nexus oss的密码
NEXUS_PASSWORD=password
# groupid
GROUP_ID = common
# type
TYPE = aar
# description
DESCRIPTION = 写点此组件的描述.
复制代码
####第二步: 修改待提交模块的build.gradle文件,
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
repository(url: MAVEN_REPO_RELEASE_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
version '1.0.2'
artifactId 'aria-lib'
groupId 'com.arialyy.aria'
packaging TYPE
description DESCRIPTION
}
// pom.groupId = 'com.duoku.sdk.download'
// pom.artifactId = 'aria2-lib'
// pom.version = '1.0.0'
}
}
}
复制代码
####第三步: 在代码开发结束,测试验证通过,觉得可以作为一个版本发布时,就可以执行提交任务了。 打开Android studio的Gradle标签,找到待发布的module,会出现upload组,下面有一个任务名叫:uploadArchives,双击该任务名称即可发布到Maven服务器。
####第四步: 到前面三步,如果都顺利的话,其实我们的组件已经发布到Maven服务器。这一步主要是引用Maven上已提交的库,即对组件的使用。 需要修改项目的build.gradle文件,增加我们自己Maven服务器的地址,例如:
maven {
url 'http://172.16.4.112:8081/nexus/content/repositories/jcenterp/'
}
复制代码
然后在具体使用该组件的module的build.gradle文件中添加对该组件的引用后重新sync一下gradle,会发现我们前面提交的gradle已经拉下来了。
#android studio3.0上使用implementation和api替代以前的compile指令了
implementation 'com.android.support:appcompat-v7:26.1.0'
#或者
api 'com.android.support:appcompat-v7:26.1.0'
复制代码