本文主要是介绍Nexus3配合Gradle搭建私有仓库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 0x00 Nexus3配合Gradle搭建私有仓库
- 0x01 Nexus配置
- docker
- nexus3
- 0x02 Android Library
- 0x03 Android Demo
- 0xFF 参考
0x00 Nexus3配合Gradle搭建私有仓库
场景:将自己的代码通过gradle上传到使用nexus3搭建的私有仓库。
0x01 Nexus配置
docker
-
安装
docker
和kitmatic
-
安装
nexus3
kitematic
搜索nexus3
,选择Sonatype nexus3(Sonatype Nexus Repository Manager3)
-
配置
- 配置端口号
- 配置存储目录
nexus3
-
默认管理员:admin:admin123
-
修改管理员密码
依次点击:
右上角admin
>Change password
-
关闭匿名用户访问权限
依次点击:
顶部设置
>Administration
>Security
>Anonymous
>Allow anonymous users to access the server
-
创建仓库
-
ttdevs-releases
Administration
>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-snapshot
Administration
>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-browse
nx-repository-admin-maven2-ttdevs-release-read
nx-repository-view-maven2-ttdevs-release-browse
nx-repository-view-maven2-ttdevs-release-read
nx-repository-admin-maven2-ttdevs-snapshot-browse
nx-repository-admin-maven2-ttdevs-snapshot-read
nx-repository-view-maven2-ttdevs-snapshot-browse
nx-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.gradle
ext {nexusConfig = [repository: 'http://ttdevs.vicp.cc:9020/repository/ttdevs-releases/',repositorySnapshot: 'http://ttdevs.vicp.cc:9020/repository/ttdevs-snapshot/'] }
-
修改
gradle.properties
nexusUploader=Uploader nexusUploaderPwd=uploader_password nexusSnapshot=Snapshot nexusSnapshotPwd=snapshot_password
为了安全起见,上传的权限不放入git仓库
-
修改
build.gradle
,添加apply from: 'config.gradle'
-
创建
publish.gradle
apply plugin: 'maven'uploadArchives {configuration = configurations.archivesrepositories {mavenDeployer {repository(url: nexusConfig.repository) {authentication(userName: nexusUploader, password: nexusUploaderPwd)}snapshotRepository(url: nexusConfig.repositorySnapshot) {authentication(userName: nexusSnapshot, password: nexusSnapshotPwd)}pom.project {version project.versionartifactId project.namegroupId '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.gradle
ext {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'
0xFF 参考
- 搭建私有-Sonatype-仓库
这篇关于Nexus3配合Gradle搭建私有仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!