Android studio 使用Nexus搭建 Maven 私服

时间:2024-06-01 08:23:01

Nexus环境

平台:win64

JDK:1.8

Maven:maven2

Nexus:nexus3-win64

测试环境:

Android studio 3.5

gradle 5.4.1

一 搭建Nexus Maven私服

     1、安装JDK环境 

            1.1 下载JDK1.8 :http://www.oracle.com/technetwork/java/javase/downloads/index.html

            1.2 安装JDK1.8

            1.3 配置环境变量

                 1. 3.1 打开环境变量配置。计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。

                 1.3.2 配置JAVA_HOME。新建,变量名JAVA_HOME,变量值,jdk路径,我的路径是C:\Program Files\Java\jdk1.8.0_121,保存。

                                                             Android studio 使用Nexus搭建 Maven 私服

        1.3.3 配置CLASSPATH。新建,变量名CLASSPATH,变量值,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(第一个分号前前面有一个点)。

                                                             Android studio 使用Nexus搭建 Maven 私服

        1.3.4. 配置Path。打开Path变量,在变量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

                                             Android studio 使用Nexus搭建 Maven 私服

2.安装Maven

https://www.cnblogs.com/AnneHan/p/9762326.html

3.安装Nexus

1. 下载Nexus-win-64版本

2. 解压至目标目录

3. 打开cmd ,cd至 nexus-xxx-xxx目录下的bin文件中 执行 nexus.exe  /run 命令

4.打开http://localhost:8081 默认账号 admin 初始密码在nexus-latest-64/sonatype-work 下的admin.password中

5.登录后修改密码

7.开始创建仓库

Android studio 使用Nexus搭建 Maven 私服

Android studio 使用Nexus搭建 Maven 私服

Android studio 使用Nexus搭建 Maven 私服

 group:仓库组 

 host:仓库

proxy:maven 代理仓库,例如阿里云*仓库 maven*仓库等

创建仓库:

Android studio 使用Nexus搭建 Maven 私服

3.设置访问限制Android studio 使用Nexus搭建 Maven 私服

设置该项后可不需要账号密码进行库引用,不设置需要带账号密码引用库

4.上传库

1.在module目录下引入一下两个文件 maven_push.gradle gradle.properties

maven_push.gradle

apply plugin: 'maven'
apply plugin: 'signing'

configurations {
    deployerJars
}

repositories {
    mavenCentral()
}

// 判断版本是Release or Snapshots
def isReleaseBuild() {
    return !VERSION.contains("SNAPSHOT")
}

// 获取仓库url
def getRepositoryUrl() {
    return isReleaseBuild() ? RELEASE_URL : SNAPSHOT_URL
}

afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                beforeDeployment {
                    MavenDeployment deployment -> signing.signPom(deployment)
                }

                pom.version = VERSION
                pom.artifactId = POM_ARTIFACT_ID
                pom.groupId = POM_GROUP_ID

                repository(url: getRepositoryUrl()) {
                    authentication(userName: NAME, password: PASSWORD) // maven授权信息
                }

                // (非必须)库生成的pom.xml文件内容
                pom.project {
                    name POM_NAME
                    packaging POM_PACKAGING
                    description POM_DESCRIPTION
                    url POM_URL

                    scm {
                        url POM_SCM_URL
                        connection POM_SCM_CONNECTION
                        developerConnection POM_SCM_DEV_CONNECTION
                    }

                    licenses {
                        license {
                            name POM_LICENCE_NAME
                            url POM_LICENCE_URL
                            distribution POM_LICENCE_DIST
                        }
                    }

                    developers {
                        developer {
                            id POM_DEVELOPER_ID
                            name POM_DEVELOPER_NAME
                        }
                    }
                }
            }
        }
    }
}

// 进行数字签名
signing {
    // 当 发布版本 & 存在"uploadArchives"任务时,才执行
    required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
    sign configurations.archives
}

// 以下内容非必须
// type显示指定任务类型或任务, 这里指定要执行Javadoc这个task,这个task在gradle中已经定义
task androidJavadocs(type: Javadoc) {
    // 设置源码所在的位置
    source = android.sourceSets.main.java.sourceFiles
}

// 生成javadoc.jar
task androidJavadocsJar(type: Jar) {
    // 指定文档名称
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}

// 生成sources.jar
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}

// 产生相关配置文件的任务
artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}

gradle.properties

#MAVEN需要的配置
#包名
POM_GROUP_ID=com.test.maventest 
#name
POM_ARTIFACT_ID=maventest
#版本
VERSION=0.0.1
#relase仓库地址
RELEASE_URL=http://localhost:8081/repository/test/
#SNAPSHOT版本仓库地址
SNAPSHOT_URL=http://localhost:8081/repository/test-SNAPSHOT/
#nexus账号
NAME=admin
#nexus密码
PASSWORD=admin

# 下面这部分POM的配置不是必须的,使用默认生成的也可以
# 库名称
POM_NAME=jlscjlib
# 库的打包格式为aar, 常见的还有jar
POM_PACKAGING=aar
# 库的描述
POM_DESCRIPTION=FF协议修订
# POM文件中指向你网站的地址
POM_URL=http://www.bjjuli.chttp://49.233.149.47:8081/om/
# SCM是指版本管理工具
POM_SCM_URL=http://www.bjjuli.com/
POM_SCM_CONNECTION=http://www.bjjuli.com/
POM_SCM_DEV_CONNECTION=http://www.bjjuli.com/
# 你的开放协议相关信息
POM_LICENCE_NAME= Apache License Version 2.0
POM_LICENCE_URL= http://www.bjjuli.com//
POM_LICENCE_DIST=Apache License Version 2.0
# 开发者的相关信息
POM_DEVELOPER_ID=admin
POM_DEVELOPER_NAME=admin

2.在module下的build.gradle中添加引用

Android studio 使用Nexus搭建 Maven 私服

3. 上传库到nexus

Android studio 使用Nexus搭建 Maven 私服

 

5. 引用该库文件

       1.在工程目录下的build.gradle中导入maven仓库地址

Android studio 使用Nexus搭建 Maven 私服

       2. 导入包,在app目录下的build.gradle中引入

Android studio 使用Nexus搭建 Maven 私服

同步一下后仓库中的包就导入到项目中了