Nexus3配合Gradle搭建私有仓库

2024-04-25 03:18

本文主要是介绍Nexus3配合Gradle搭建私有仓库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 0x00 Nexus3配合Gradle搭建私有仓库
    • 0x01 Nexus配置
      • docker
      • nexus3
    • 0x02 Android Library
    • 0x03 Android Demo
    • 0xFF 参考

0x00 Nexus3配合Gradle搭建私有仓库

场景:将自己的代码通过gradle上传到使用nexus3搭建的私有仓库。

0x01 Nexus配置

docker

  • 安装 dockerkitmatic

  • 安装 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
    • 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

    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搭建私有仓库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933576

相关文章

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

鸿蒙开发搭建flutter适配的开发环境

《鸿蒙开发搭建flutter适配的开发环境》文章详细介绍了在Windows系统上如何创建和运行鸿蒙Flutter项目,包括使用flutterdoctor检测环境、创建项目、编译HAP包以及在真机上运... 目录环境搭建创建运行项目打包项目总结环境搭建1.安装 DevEco Studio NEXT IDE

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个