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 私服

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

 

 

 

 

 

相关文章:

  • 2022-01-14
  • 2021-06-25
  • 2021-04-25
  • 2021-09-05
猜你喜欢
  • 2021-12-28
  • 2021-06-11
  • 2022-12-23
  • 2021-05-26
  • 2022-01-01
  • 2021-08-12
  • 2021-09-19
相关资源
相似解决方案