Android Studio gradle发布module到maven私服Nexus

参考:Android Studio依赖管理与Nexus私服搭建

关闭防火墙 默认端口8081:

systemctl stop firewalld

一:创建仓库

参考资料:

http://books.sonatype.com/nexus-book/3.0/reference/install.html#installation-java

1.1创建自己的仓库

1.1.1创建用户

首先使用管理员密码登陆到 Nexus私服 并添加用户:

nexus默认的用户名:admin

密码:初始密码不是admin123,是保存在nexus安装目录下的sonatype-workadmin.password文件中,打开文件可以看到如下内容:

注:内容即为密码明文,而非加密后的结果,直接复制登录即可。

第一次输入账号密码后,会提示修改初始密码):


                                                                                                        登录


                                                                                               创建用户

使用新创建的用户登录Nexus并创建仓库:




二:Modul仓库发布:

在需要发布的Modul下build.gradle中添加uploadArchives任务(

gradle发布脚本:

/**②.发布到私有服务器maven仓库*/

apply plugin: 'maven'

//打包main目录下代码和资源的 task

task androidSourcesJar(type: Jar) {

    classifier = 'sources'

    from android.sourceSets.main.java.srcDirs

}

//配置需要上传到maven仓库的文件

artifacts {

    archives androidSourcesJar

}

//上传到Maven仓库的task

uploadArchives {

    repositories {

        mavenDeployer {

            //指定maven仓库url

            repository(url: "http://localhost:8081/nexus/content/repositories/releases/"){

            //nexus登录默认用户名和密码

            authentication(userName: "admin", password: "admin123")

            }

            pom.project {

                pom.groupId = "com.github.itxiaox.utils"// 唯一标识(通常为模块包名,也可以任意)

                pom.artifactId = "android-utils" // 项目名称(通常为类库模块名称,也可以任意)

                pom.version = "1.0.0" // 版本号

            }

        }

    }

}


编译脚本后,双击上传


至此gradle发布依赖库到maven私服成功。

三:使用

1.配置nexus仓库访问权限,直接设置允许匿名访问


和使用本地仓库依赖一样,我们告诉gradle依赖包仓库的位置,在项目根目录下build.gradle中添加:

allprojects {

    repositories {

        jcenter()


        //私有服务器仓库地址

        maven {

            url 'http://127.0.0.1:8081/nexus/content/repositories/releases/'

        }

    }

}

然后在需要使用的module的build.gradle文件中添加:

implementation 'com.github.itxiaox.utils:android-utils:1.0.0'

3.2按要求进行配置才能进行依赖。

参考:Nexus私服添加用户名密码凭据访问的配置方法

前言

默认情况下,Nexus私服的仓库是允许匿名(anonymous)访问的,也就是任何开发者只要知道你的仓库地址,都可以远程依赖你发布到仓库的库。既然是私服,可能有些库不想要给其他人访问,可以通过设置凭据访问来限制用户访问远程依赖库,最简单的一种就是用户名密码凭据访问。

配置方法

Nexus 服务端配置

第一步:打开远程仓库,使用有配置管理的账户登录,打开设置页面;

第二步:定位到“Security-Anonymous”,将“Allow anonymous users to access the server”勾选去掉,保存更改。


第三步:定位到“Security-Roles”,新建一个可以访问仓库的角色


第四步:配置角色,添加可访问的仓库,保存角色信息


第五步:定位到“Security-Users”,添加用户


第六步:给新建的用户赋予刚才新建的角色,保存用户。


Gradle配置maven依赖

打开AndroidStudio项目根目录下的build.gradle,在maven节点下添加credentials配置,添加username和password两个两个参数配置即可。

repositories {

    maven {

        url "http://192.168.8.37:8081/repository/RastarGameSdkOversea/" // 具体仓库

credentials {

username = 'uname'

password = 'pwd'

}

    }

}

对于其他Maven的配置,跟以上类似,只需要在仓库配置里添加用户名和密码的配置即可。

你可能感兴趣的:(Android Studio gradle发布module到maven私服Nexus)