AndroidStudio+Nexus3.x搭建Maven私服

版权声明:尊重原创,转载请附本文链接。谢谢合作! https://blog.csdn.net/DeMonliuhui/article/details/82459363

环境

文章的运行环境为:
AndroidStudio版本:3.1.4
Gradle版本:3.1.4
Nexus版本:3.13.0

前言

dependencies {
     ...
    implementation 'org.litepal.android:core:2.0.0' //数据库
    implementation 'org.greenrobot:eventbus:3.1.1'
    ...
}

作为一名Android开发者,像上面一行代码导入一个框架的方法,肯定很熟悉。
这些框架的代码就放在作者的Maven仓库里面,然后给我们远程引入到自己的项目里面。
现在使用GitHub+jitpack搭建打包仓库的也是很常见,就是jitpack将GitHub中配置好的代码打包到自己的仓库帮用户代理。详情见:GitHub+jitpack生成自己的Compile依赖

Maven本地仓库

由于AndroidStudio(AS)自带Maven仓库打包插件,所以无需任何环境和工具,我们也可以用AS打包代码到本地,然后直接本地引用即可。

打包代码

我们在需要打包的Library的build.gradle中添加如下代码:

apply plugin: 'maven' //maven仓库插件

....

uploadArchives {
    repositories.mavenDeployer {
        //打包的路径
        repository(url: 'file://D:/nexus-3.13.0/Repositories') 
        pom.project {
            version '1.0' //版本号,多次打包不能一致
            artifactId 'PrintHello' //识别Id,与项目名称一致即可
            groupId 'com.demon' //组号,类似包名
            packaging 'aar' //打包格式
            description 'PrintHello dependences lib' //描述
        }
    }
}

然后如下图操作,打包完成后,我们会在打包的路径看到生成的文件。
这里写图片描述

引入代码

首先在工程的根目录的build.gradle中添加:

allprojects {
    repositories {
        ...
        //上面打包的路径
        maven(){url 'file://D:/nexus-3.13.0/Repositories'}
        ...
    }
}

然后在项目的build.gradle中添加:

dependencies {
    ...
    //格式:groupId:artifactId:version
    implementation 'com.demon:PrintHello:1.0'
    ...
}

点击Sync now,如果成功,则引入成功。

Nexus3.X搭建私服仓库

上面的代码在本地,只能自己使用。要给别人使用,我们就需要搭建一个远程仓库。
下面介绍如何本地使用nexus3.X搭建私服仓库(也可以搭建在服务器上),并打包代码和引用。
Nexus下载:https://www.sonatype.com/download-oss-sonatype
安装配置如下:Windows下安装Nexus OSS 3.4.0

配置Nexus

将下载的nexus.xxx.zip文件解压到自定义目录下即可。

打开…/etc/nexus-default.properties文件,配置Nexus端口和上下文路径。

  1. application-host : Nexus服务监听的主机
  2. application-port: Nexus服务监听的端口,
  3. nexus-context-path : Nexus服务的上下文路径

我的配置如下:

# 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

打开…/bin/nexus.vmoptions文件,运行环境配置。
可以配置运行时的最大堆、最小堆等,可以根据个人的电脑以及需要修改。
此处我没有做任何修改。

安装Nexus

在Nexus的bin文件下,运行管理员的cmd。

  1. 启动nexus服务:nexus.exe /run
  2. 安装nexus服务:nexus.exe /install
  3. 启动服务:net start nexus

如果需要卸载Nexus:nexus.exe /uninstall
关闭服务:net stop nexus

登陆Nexus

浏览器输入:127.0.0.1:8081 (若修改了上下文路径,后面需要加上该路径)
点击Sign in 进行登陆,nexus默认的用户名是admin,密码为admin123

登陆成功便能看见一些默认的仓库。
这里写图片描述

仓库名 作用
hosted(宿主仓库库) 存放本公司开发的jar包(正式版本、测试版本)
proxy(代理仓库) 代理中央仓库、Apache下测试版本的jar包
group(组仓库) 使用时连接组仓库,包含Hosted(宿主仓库)和Proxy(代理仓库)
virtual (虚拟仓库) 基本用不到,重点关注上面三个仓库的使用

创建仓库

这里写图片描述

选择Maven2(hosted)

这里写图片描述

创建仓库成功后,看到仓库可以点击Copy复制仓库路径。

打包代码

我们在需要打包的Library的build.gradle中添加如下代码:

apply plugin: 'maven' //maven仓库插件
....
uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            //Copy复制仓库路径
            repository(url: 'http://127.0.0.1:8081/repository/Test/') {
                //你Nexus的账户密码
                authentication(userName: 'admin', password: '123456')
            }
            pom.project {
                version '1.0.0'
                artifactId 'PrintHello'
                groupId 'com.demon'
                packaging 'aar'
                description 'PrintHello dependences lib'
            }
        }
    }
}

可以看见跟本地打包相比就是修改了仓库的路径,和添加仓库的认证信息。
如上本地打包,在Gradle中执行uploadArchives即可。

打包成功后,如下图能打包成功后生成的文件。
这里写图片描述

引入代码

首先在工程的根目录的build.gradle中添加:

allprojects {
    repositories {
        ...
        //Copy复制仓库路径
        maven(){url 'http://127.0.0.1:8081/repository/Test/'}
    }
}

然后在项目的build.gradle中添加:

dependencies {
    ...
    //格式:groupId:artifactId:version
    implementation 'com.demon:PrintHello:1.0.0'
    ...
}

点击Sync now,如果成功,则引入成功。
跟本地引入,除仓库路径需要修改外,其余完全一致。

参考

Windows下安装Nexus OSS 3.4.0
Android Studio 教你5分钟搭建和使用Maven仓库

猜你喜欢

转载自blog.csdn.net/DeMonliuhui/article/details/82459363