服务启动后就可以通过浏览器访问,默认端口为8081,可以通过服务器IP加端口号直接访问(http://<server_host>:8081)
默认账号为admin,密码为admin123。登录之后我们可以在用户中心修改密码。
maven仓库类型
maven仓库类型只有3中,分别是: hosted、proxy、group
- hosted:宿主类型 内部项目的发布仓库,专门用来存储我们自己生成的jar文件,aar文件。我们自己上传的开发库,就是上传到该类型下的仓库中。
- proxy:代理类型 从远程*仓库中寻找数据的仓库,如可配置阿里云maven仓库。
- group:组类型 Nexus通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。
简单来说: group = hosted+proxy
如上图所示,maven-public就是默认创建的组仓库。
版本类型
- release:专用于部署发布版本的jar或aar,对应maven-release宿主仓库。
- snapshot:专用于部署快照版本的jar或aar,都是以-SNAPSHOT结尾,pom中version需以-SNAPSHOT(必须大写)结尾,对应maven-snapshot仓库。
- mixed:可包含release和snapshot版本
权限管理
数据权限:repository权限有两种类型:
- repository admin
- repository view
每种类型又有5种权限标识,分别是:add,browse、delete、edit、read。 可以根据需要进行账户配置。
上传library库到仓库
我们在本地开发,封装后开发库之后,怎么上传到仓库呢,这里以一个简单的例子为例。我在本地新建了一个Autobio_Android的Android工程,这里我们再新建一个Android Library的module(名字为utilcode),这个模块就是我们封装开发完后要上传到仓库中,供其他人使用的library库,或者aar文件。
要上传到仓库,还是利用gradle自动化构建的一些东西。
一、在工程的gradle.properties文件中,配置需要使用全局信息
如上图所示,我们可以配置maven-releases仓库(一般是存放开发比较成熟稳定的库)的地址和maven-snapshots仓库(一般存放处于开发阶段的,可能会随时更改的库)的地址;还有NEXUS的用户名和密码;一般一个公司一个团队的groupId都是一样的,所以这里也配置一下GROUP_ID。
GROUP_ID:比如我们依赖第三方库implementation ‘io.reactivex.rxjava2:rxjava:2.1.12’,这个rxjava库
的GROUP_ID就是io.reactivex.rxjava2,我们添加依赖库就是:GROUP_ID:artifactId:版本号。
二、在要上传的library模块的build.gradle文件中添加配置上传代码
这里为了整洁性,就把这部分代码单独提出来,在utilcode模块下新建一个upload_nexus.gradle的gradle文件,具体代码如下:
apply plugin: ‘maven’
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
snapshotRepository(url: MAVEN_SNAPSHOT_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
repository(url: MAVEN_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
version ‘0.0.2-SNAPSHOT’
groupId GROUP_ID
artifactId ‘util-code’
packaging ‘aar’
description ‘dependences lib’
}
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = ‘javadoc’
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = ‘sources’
from android.sourceSets.main.java.sourceFiles
}
//解决 JavaDoc 中文注释生成失败的问题
tasks.withType(Javadoc) {
options.addStringOption(‘Xdoclint:none’, ‘-quiet’)
options.addStringOption(‘encoding’, ‘UTF-8’)
options.addStringOption(‘charSet’, ‘UTF-8’)
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
}
upload_nexus.gradle编写完之后,我们把该文件引入utilcode模块的build.gradle中,如下图所示:
[外链图片转存中…(img-MeTGtfj1-1643170766742)]
upload_nexus.gradle编写完之后,我们把该文件引入utilcode模块的build.gradle中,如下图所示: