Gradle私服上传自己的库项目

Nexus安装配置

开始搭建我们的私服前,我们需要先安装配置我们的nexus服务器。

  • 下载地址:https://www.sonatype.com/download-oss-sonatype

  • 安装:

    • 管理员身份运行cmd,进入nexus bin目录,nexus /install nexus
    • nexus /run(之前版本用bat启动,nexus start启动)
  • 修改配置(etc目录nexus-default.properties)如:

    修改主机地址和端口地址:

      	## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
      ##
      # Jetty section
      application-port=8081
      application-host=127.0.0.1
      nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
      nexus-context-path=/
      
      # Nexus section
      nexus-edition=nexus-pro-edition
      nexus-features=\
       nexus-pro-feature
    
  • 访问地址:127.0.0.1:8081

    • 用户名(default):admin
    • 密码(default):admin123
  • 登录后找到设置,点击Create Repository -> maven2(hosted) ->

在这里插入图片描述

在这里插入图片描述

创建好我们的releases和snapshot仓库后回到我们仓库列表,点击maven-public,将我们创建的两个仓库加入到这个group中

在这里插入图片描述

编写gradle task上传我们的项目


apply plugin: 'com.android.library'
apply plugin: 'maven'

version rootProject.ext.maven.version
group rootProject.ext.maven.group

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url:rootProject.ext.maven.releasesUrl){
                authentication(userName: rootProject.ext.maven.userName, password: rootProject.ext.maven.password)
            }
            snapshotRepository(url:rootProject.ext.maven.snapshotUrl){
                authentication(userName: rootProject.ext.maven.userName, password: rootProject.ext.maven.password)
            }
            pom.artifactId = "demo" // 仓库名
            pom.packaging = 'aar' // 打包成aar
        }
    }
}
  • repository:我们项目的releases仓库
  • snapshotRepository:我们项目的快照仓库

这里用到了project对象的ext属性,可以将一些配置信息抽取出来,如:

config.gradle

ext {
    maven = [
        userName : 'admin',
        password : 'admin123',
        releasesUrl : 'http://127.0.0.1:8081/repository/demo-releases/',
        snapshotUrl : 'http://127.0.0.1:8081/repository/demo-releases/',
        version : '1.0.0',
        group : 'com.simple.sdk'
    ]
 }

要让ext属性生效,我们需要在我们的根项目将这个gradle脚本引入进来

apply from: 'config.gradle'

在项目目录打开命令行执行gradlew uploadArchives或者打开as的gradle视图双击uploadArchives执行这个task即可将我们的库项目发布到我们的nexus服务器上。

像引用其他第三方库(如okhttp)一样在其他的项目中引用我们的库项目

  1. 需要将我们根项目的build.gradle中配置我们库项目的maven仓库地址
maven {
    url "${rootProject.ext.maven.releasesUrl}"
}
  1. 添加依赖
implementation 'com.simple.sdk:demo:1.0.0'
注:com.simple.sdk:demo:1.0.0'  =  group + :+artifactId + : + version

自此我们项目私服就搭建完了,如果下次我们的sdk有更新,那么我们只需要将version的版本号做相应的提升重新上传并修改我们项目依赖的版本号即可。这样我们就可以在局域网内和我们的小伙伴一起共享我们的库项目了,但这仅限局域网,如果需要在外网,我们就想我们的项目发布到外网maven服务器上。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页