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,保存。
1.3.3 配置CLASSPATH。新建,变量名CLASSPATH,变量值,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(第一个分号前前面有一个点)。
1.3.4. 配置Path。打开Path变量,在变量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
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.开始创建仓库
group:仓库组
host:仓库
proxy:maven 代理仓库,例如阿里云中央仓库 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中添加引用
3. 上传库到nexus
5. 引用该库文件
1.在工程目录下的build.gradle中导入maven仓库地址
2. 导入包,在app目录下的build.gradle中引入
同步一下后仓库中的包就导入到项目中了