Gradle系列之从零搭建Maven私服库

原文发于微信公众号 jzman-blog,欢迎关注交流。

前面几篇文章学习了 Gradle 相关知识,Gradle 系列文章以下:java

今天的内容是使用 Nexus Repository Manager 搭建 Maven 私服库,这样能够将一些通用的库项目提取出来供其余项目使用,如工具库、基本组件库等,下面将从零开始搭建 Maven 私服库,android

  1. 安装Nexus服务
  2. 运行Nexus服务
  3. 发布库项目
  4. 使用库项目
  5. 总结

安装Nexus服务

在以下地址下载 Nexus 安装包:缓存

http://www.sonatype.com/download-oss-sonatype

选择适合本身的版本进行下载,如这里选择的是 nexus-3.13.0-01-win64,下载完成以后解压,有两个文件夹以下:微信

//nexus服务
nexus-3.13.0-01
//nexus相关配置文件,如日志、仓库、索引、缓存等配置文件
sonatype-work

而后打开 cmd 命令提示符以管理员方法运行,进入 Nexus 服务解压目录下的 bin 目录下执行以下命令来安装 Nexus 服务,参考以下:app

nexus.exe/install

执行完成后 Nexus 服务就安装完成了,安装 Nexus 服务成功执行结果参考以下:maven

E:\Gradle\Nexus\nexus-3.13.0-01-win64\nexus-3.13.0-01\bin>nexus.exe/install
Installed service 'nexus'.

运行Nexus服务

安装完成 Nexus 服务以后执行以下命令来运行 Nexus 服务,参考以下:工具

nexus.exe/run

执行该命令会启动 Nexus 服务,执行成功的关键信息以下:post

E:\Gradle\Nexus\nexus-3.13.0-01-win64\nexus-3.13.0-01\bin>nexus.exe/run
Preparing JRE ...
2018-09-10 23:02:21,265+0800 INFO  [FelixStartLevel] *SYSTEM org.sonatype.nexus.pax.logging.NexusLogActivator - start
//...
-------------------------------------------------

Started Sonatype Nexus OSS 3.13.0-01

-------------------------------------------------
//...

当 Nexus 服务正常启动以后,可以使用以下地址访问 Nexus 服务,具体以下:学习

http://localhost:8081/

运行结果以下所示:测试

在这里插入图片描述

建立仓库

使用默认帐户名 admin 和默认密码 admin123 登陆成功以后,而后选择设置(小齿轮),在左侧选择 Security->Users,而后选择建立用户 Create local user 输入相关信息帐号建立完成,而后使用刚才建立的新帐号登陆,而后就能够在本身的帐号下面建立仓库了,可参考下图:

在这里插入图片描述

发布库项目

仓库建立好了以后就能够发布项目到仓库中了,这里首先使用 Android Studio 建立一个库项目 test,而后在其 build.gradle 文件中配置上传该库的 Task,看一下该库使用的插件:

//使用Android Library插件
apply plugin: 'com.android.library'
//使用maven插件
apply plugin: 'maven'

//Upload Task用于发布上传
uploadArchives{
    repositories{
        mavenDeployer{
            //正式发布仓库
//            repository(url:"http://localhost:8081/repository/jzman-releases/"){
//                authentication(userName:"jzman",password:"nexus2410.")
//            }
            //快照版本的仓库
            snapshotRepository(url:"http://localhost:8081/repository/jzman-snapshots/"){
                authentication(userName:"jzman",password:"nexus2410.")
            }

            pom.project {
                //版本号,若是是快照版本,其版本号后面应该添加-SNAPSHOT,不然不能正常识别上传
                version '1.0.0-SNAPSHOT'
                //通常写项目名称便可
                artifactId 'testWidget'
                //组别,相似包名,保证惟一性
                groupId 'com.manu.test'
                //打包格式
                packaging 'aar'
                //描述
                description '测试maven私服搭建'
            }
        }
    }
}
//...

配置完用于上传库项目的 task 以后,就能够根据须要上传到以前建立的对应仓库中了,执行上传 task 可以使用 Android Gradle 提供的快捷方式,以下图所示:

在这里插入图片描述

等待 uploadArchives 执行完毕后对应的库项目就发布到对应的仓库了,下面是发布到了正式仓库,以下图所示:

在这里插入图片描述

正式版发布每次必须的更改版本号,不然不能发布成功,下面是发布到了快照仓库,以下图所示:

在这里插入图片描述

若是将库项目发布到快照仓库中,能够屡次上传发布,每次不须要修改版本号,它会本身维持在原来版本号的基础上自增,如 1.0.0-时间戳-一、1.0.0-时间戳-2等,实际使用时仍是用版本号 1.0.0-SNAPSHOT,使用时 Maven 会自动下载最新的快照版本,也就是序号最大的快照版本,这种方式便于将库项目发现的问题及时发布上去,有助于快速迭代,等到没有问题就能够发布正式版本了。

使用库项目

库项目是发布成功以后,就能够在任意的项目中使用这个库项目了,在项目下的 build.gradle 文件中配置项目使用的 Maven 仓库:

//...

allprojects {
    repositories {
        //...
        //配置maven仓库
        maven {
            url 'http://localhost:8081/repository/jzman-releases/'
        }
    }
}

//...

而后,在具体的项目中就能够配置对应依赖就可使用这个库项目了,配置依赖以下:

dependencies {
    //...
    //配置依赖库项目
    compile 'com.manu.test:testWidget:1.0.0'
}

总结

本篇文章的主要内容就是在本地搭建一个可用的 Maven 私服库,实际开发中只需根据上述内容将对应的仓库地址更换为本身公司的仓库地址便可,其余如 jcenter 库的搭建也相似,这篇文章的内容就到此为止。

image

相关文章
相关标签/搜索