0x00 Nexus3配合Gradle搭建私有仓库
场景:将自己的代码通过gradle上传到使用nexus3搭建的私有仓库。
0x01 Nexus配置
docker
-
安装
docker和kitmatic -
安装
nexus3kitematic搜索nexus3,选择Sonatype nexus3(Sonatype Nexus Repository Manager3) -
配置
- 配置端口号
- 配置存储目录
nexus3
-
默认管理员:admin:admin123
-
修改管理员密码
依次点击:
右上角admin>Change password -
关闭匿名用户访问权限
依次点击:
顶部设置>Administration>Security>Anonymous>Allow anonymous users to access the server -
创建仓库
-
ttdevs-releasesAdministration>Repository>Repositories>Create repository>maven2(hosted)>ttdevs-releases- Maven 2
- Version policy: Release
- Layout policy: Strict
- Storage
- Blob store: default
- Hosted
- Deployment policy: Disable redeploy
- Maven 2
-
ttdevs-snapshotAdministration>Repository>Repositories>Create repository>maven2(hosted)>ttdevs-snapshot- Maven 2
- Version policy: Snapshot
- Layout policy: Permissive
- Storage
- Blob store: default
- Hosted
- Deployment policy: Allow redeploy
- Version policy: Snapshot
- Maven 2
group,hosted,proxy -
-
创建角色
Administration>Security>Roles>Nexus role-
uploader
nx-repository-admin-maven2-ttdevs-release-*nx-repository-view-maven2-ttdevs-release-*
-
snapshot
nx-repository-admin-maven2-ttdevs-snapshot-*nx-repository-view-maven2-ttdevs-snapshot-*
-
reader
nx-repository-admin-maven2-ttdevs-release-browsenx-repository-admin-maven2-ttdevs-release-readnx-repository-view-maven2-ttdevs-release-browsenx-repository-view-maven2-ttdevs-release-readnx-repository-admin-maven2-ttdevs-snapshot-browsenx-repository-admin-maven2-ttdevs-snapshot-readnx-repository-view-maven2-ttdevs-snapshot-browsenx-repository-view-maven2-ttdevs-snapshot-read
-
-
创建用户
Administration>Security>Users>Create user-
Uploader
赋予上步创建的
uploader权限 -
Snapshot
赋予上步创建的
snapshot权限 -
Reader
赋予上步创建的
reader权限
-
0x02 Android Library
-
创建Project:
AndroidLibrary -
创建Module:
log,编写业务和测试代码如果此处有引用第三方代码,建议不要在后面添加
@aar!!! -
创建
config.gradleext { nexusConfig = [ repository: 'http://ttdevs.vicp.cc:9020/repository/ttdevs-releases/', repositorySnapshot: 'http://ttdevs.vicp.cc:9020/repository/ttdevs-snapshot/' ] } -
修改
gradle.propertiesnexusUploader=Uploader nexusUploaderPwd=uploader_password nexusSnapshot=Snapshot nexusSnapshotPwd=snapshot_password为了安全起见,上传的权限不放入git仓库
-
修改
build.gradle,添加apply from: 'config.gradle' -
创建
publish.gradleapply plugin: 'maven' uploadArchives { configuration = configurations.archives repositories { mavenDeployer { repository(url: nexusConfig.repository) { authentication(userName: nexusUploader, password: nexusUploaderPwd) } snapshotRepository(url: nexusConfig.repositorySnapshot) { authentication(userName: nexusSnapshot, password: nexusSnapshotPwd) } pom.project { version project.version artifactId project.name groupId 'com.ttdevs.lib' packaging 'aar' description project.description } } } task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles } artifacts { archives androidSourcesJar } } -
修改
log/build.gradleext { project.version = '0.1.0' // project.version = '0.1.0-SNAPSHOT' project.description = 'ttdevs log' } apply from: getRootDir().getAbsolutePath() + '/publish.gradle' -
上传
./gradlew :log:uploadArchives➜ AndroidLibrary ./gradlew :log:uploadArchives Could not find metadata com.ttdevs.lib:log/maven-metadata.xml in remote (http://ttdevs.vicp.cc:9020/repository/ttdevs-releases/) BUILD SUCCESSFUL in 3s 26 actionable tasks: 1 executed, 25 up-to-date ➜ AndroidLibrary
0x03 Android Demo
- 创建Project:
AndroidDemo - 修改
AndroidDemo/build.gradle
...
allprojects {
repositories {
jcenter()
maven {
url "http://ttdevs.vicp.cc:9020/repository/ttdevs-releases/"
credentials {
username 'Reader'
password 'ttdevs'
}
}
maven {
url "http://ttdevs.vicp.cc:9020/repository/ttdevs-snapshot/"
credentials {
username 'Snapshot'
password 'ttdevs'
}
}
}
}
...
-
添加引用
修改
app/build.gradle添加引用:implementation 'com.ttdevs.lib:log:0.1.0'

本文介绍如何利用Nexus3与Gradle搭建私有仓库,包括配置Nexus3、创建仓库、配置权限及使用Gradle进行代码上传与依赖引用的方法。
2219

被折叠的 条评论
为什么被折叠?



