Nexus :

        是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。

 Maven 仓库管理器,主要有以下 3 种:

  • Apache Archiva
  • JFrog Artifactory
  • Sonatype Nexus

Nexus 开源版具有以下特性:

  • 占用内存小(28 M 左右)
  • 具有基于 ExtJs 得操作界面,用户体验较好
  • 使用基于 Restlet 的完全 REST API
  • 支持代理仓库、宿主仓库和仓库组
  • 基于文件系统,不需要依赖数据库
  • 支持仓库索引以及搜索
  • 支持在界面上上传构件
  • 安全控制

下载与安装:2.0版本

下载官网地址:Download 

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_java

或者直接下载地址:nexus.zip

注解:如果遇到下载失败,最好用下载工具进行下载,目前我在下载过程中遇到了下载超时,用迅雷下载完美解决此问题。

解压以后得到:

  • nexus-:该目录中包含了 Nexus 2.x 运行所需要的文件,如启动脚本、依赖 jar 包等。
  • sonatype-work:该目录中包含了 Nexus 2.x 生成的配置文件、日志文件等。

如何启动:

.进入 \nexus\bin\jsw 文件夹,根须操作系统版本选择合适的目录,由于我的操作系统是 Windows 10 64 位,所以选择 windows-x86-64 目录

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_java_02

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_android_03

 其中:

  • console-nexus.bat:启动 Nexus 并在 DOS 命令行中展示启动过程。
  • install-nexus.bat:将 Nexus 安装为 Windows 服务,开机自动启动。
  • start-nexus.bat:启动 Nexus。
  • stops-nexus.bat:停止 Nexus。
  • uninstall-nexus.bat:与 install-nexus.bat 相对应,负责卸载 Nexus 服务。

如果第一次安装,双击运行 install-nexus.bat 安装 Nexus 服务,然后再运行 start-nexus.bat 启动服务。

注意:

  • 运行 install-nexus.bat 安装服务,若提示”wrapper  | OpenSCManager failed - 拒绝访问。 (0x5)“,只要关闭窗口,以管理员身份运行即可解决。
  • 运行 start-nexus.bat 启动服务,若提示”wrapper  | OpenSCManager failed - 拒绝访问。 (0x5)“,只要关闭窗口,以管理员身份运行即可解决。

访问:

访问 http://localhost:8081/nexus

默认的账号和密码:admin 和 admin123

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_android_04

 登录成功:

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_上传_05

Nexus仓库配置:

在仓库列表中,每个仓库都具有一系列属性:

  • Type:仓库的类型,Nexus 中有 4 中仓库类型:group(仓库组)、hosted(宿主仓库)、proxy(代理仓库)以及 virtual(虚拟仓库)。
  • Format:仓库的格式。
  • Policy:仓库的策略,表示该仓库是发布(Release)版本仓库还是快照(Snapshot)版本仓库。
  • Repository Status:仓库的状态。
  • Repository Path:仓库的路径。

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_上传_06

这里面我们正常使用hosted宿主仓储即可。

Releases:正式版本

Snapshots:测试版本,如果是测试版本,在push 本地aar的时候,需要在版本最后加"-Snapshots"

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_maven_07

我们一般包上传到hosted类型,默认已够我们使用。

Repository Path:仓库地址,如果我们在maven需要使用,上传和下载,的地址就是这个。直接copy到AndroidStudio或者maven xml文件中配置即可。


Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_android_08

 

Android build Maven push打包上传:

1.Android部分如果不熟悉如何打包上传,可以参考Android Maven build教程

 2.针对部分Maven上传失败,或者上传不到 Nexus服务的解决方案,可以修改maven task方法。

maven_push.gradle文件如下:

apply plugin: 'maven'


afterEvaluate { project ->
    uploadArchives {
        repositories {
            mavenDeployer {
                pom.groupId = GROUP_ID
                pom.artifactId = ARTIFACT_ID
                pom.version = VERSION
                repository(url: RELEASE_URL) {
                    authentication(userName: USER_NAME, password: PASSWORD)
                }
            }
        }
    }
    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
    }
    artifacts {
        archives androidSourcesJar
        archives androidJavadocsJar
    }
}

 最后执行上传结果如下:

Maven 私服Nexus的搭建教程windows(搭配android maven插件使用)_maven_09

 这是上传成功,我们就可以在Nexus仓库找到该包,release的包由于上传不支持覆盖版本号,所以每次上传都需要更新版本号,否则报错。

Android如何下载包:

1.在项目最外层build文件中,新增对Nexus maven库的支持


maven {
    url 'http://192.168.1.100:8081/nexus/content/repositories/releases/'
}


2.直接引用包

implementation "com.android.mobile.woniu:woniuFrame:2022.9.1.01"