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中央仓库等
创建仓库:
3.设置访问限制
设置该项后可不需要账号密码进行库引用,不设置需要带账号密码引用库
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中引入
同步一下后仓库中的包就导入到项目中了