美文网首页
自建 Maven 仓库

自建 Maven 仓库

作者: flueky | 来源:发表于2019-10-20 11:06 被阅读0次

0. 前言

自从公司使用 Maven 仓库管理代码后,一直想着有一个自己的代码仓库。虽然写的代码不多,但是不影响 Get 一项新技能。

1. 集成 Maven

由于本人是做 Android 开发,于是通过集成 Maven 的 Gradle 插件,生成对应的 aarjar 库。

在 Module 的 build.gradle 中,集成配置如下:

// 使用 Maven 插件
apply plugin: 'maven'

// 远程库名称通常由三部分构成 ,groupId:artifactId:version
// 定义 group
group = 'com.flueky'
// 定义 version
version = '1.0.0' // 指定版本
// artifactId 默认使用 module name

// 以上两个配置也可以在下面的 deployer 中定义

// 下面定义三种不同的 maven 仓库地址
// 1. 计算机中,用户目录下
def localMavenRepo = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
// 2. 工程目录下 等同 uri('../repository')
def projectMavenRepo = 'file://' + rootDir.getAbsolutePath() + '/repository' 
// 3. 自建的 Maven 私服上
def nexusMavenRepo = 'http://127.0.0.1:9000/repository/android/'
// 下面是 Maven 私服的用户名和密码,上传时需要
def nexusUserName = 'admin'
def nexusPassword = 'admin123'

uploadArchives {
    repositories.mavenDeployer {
        // 指定导出到的仓库地址,三个任选一个
        repository(url: localMavenRepo)
        repository(url: projectMavenRepo)
        repository(url: nexusMavenRepo) {
            // 需要授权用户名和密码
            authentication(userName: nexusUserName, password: nexusPassword)
        }
        // 下面三个定义的常量可以复写上面已定义的值
        pom.groupId = "com.flueky"// 唯一标识(通常为模块包名,也可以任意)
        pom.artifactId = "maven-test" // 项目名称(通常为类库模块名称,也可以任意)
        pom.version = "1.0.0" // 版本号
    }
}

配置好上述代码后,生成 aarjar 是由 Module 类型决定。

// 生成 aar
apply plugin: 'com.android.library'
// 生成 jar
apply plugin: 'java'

已本地私服为例,最终导出的远程库结构如下:

image

2. 导出到 Maven

配置完成后,即可在 Gradle 任务中查看。

image

点击 uploadArchives 即可完成导出。之后在对应的目录下查看。

3. 使用 Maven 仓库

针对前面配置的三种仓库地址,使用时需要分别作配置。

allprojects {
    repositories {
        // 本地仓库
        mavenLocal()
        // 本地服务器
        maven {
            // 如果 nexus 私服具备匿名访问权限,无须配置用户名密码,
            // 具备上传权限的用户名和密码通常不开放使用。
            credentials {
                username "flueky"
                password "123456"
            }
            url 'http://127.0.0.1:9000/repository/android/'
        }
        // 工程目录仓库
        maven { url 'file://' + rootDir.getAbsolutePath() + '/repository/' }
    }
}

最后添加依赖。

dependencies {
    implementation 'com.flueky:maven-test:1.0.0'
    implementation 'com.flueky:lib-test:1.0.0'
}

最后,如何搭建 Maven 私服,没做介绍,主要是我也才上手,搭建私服,推荐使用 nexus 。

源码地址

觉得有用?那打赏一个呗。[去打赏]({{ site.url }}/donate/)

相关文章

  • 自建Maven仓库

    嗯,搭一个自己的Maven仓库好处是……可能也没啥好处。 Nexus 它不仅可以用来做Maven仓库,最近还支持了...

  • 自建 Maven 仓库

    0. 前言 自从公司使用 Maven 仓库管理代码后,一直想着有一个自己的代码仓库。虽然写的代码不多,但是不影响 ...

  • 自建Maven仓库 - Artifactory

    一、概述 在实际业务开发中,可能会遇见很多通用模块管理问题,可能并不想每次打包的时候就去重新build对应模块,这...

  • maven打包及上传操作

    1、配置maven的settings.xml文件用户信息 一般公司都会自建maven私服仓库,此时需要配置相应访问...

  • Android自建Maven依赖仓库

    一、简介   最近因为公司项目原因,需要将部分模块打包出去,供其他项目组使用,所以涉及到arr、jar的本地打包以...

  • Maven 仓库管理

    本节主要介绍如何配置 Maven 仓库,发布 jar 包到 Maven 仓库 Maven 仓库是什么? Maven...

  • Maven实战之Maven仓库

    Maven实战之Maven仓库 Maven仓库作用 仓库,顾名思义就是存放物品的地方。在Maven中,我们可以将其...

  • 拉勾后台管理系统后端开发

    后端开发 Maven settings.xml配置文件 仓库 本地仓库 远程仓库 中央仓库 maven中央仓库 ...

  • 第5章 总结

    5.1 maven 仓库 1、maven 仓库的类型有哪些? 2、maven 工程查找仓库的流程是什么? 3、本地...

  • 【maven】仓库的优先级顺序

    在maven中,仓库可以分为:本地仓库、远程仓库。远程仓库可以分为:中央仓库、私服仓库。中央仓库是maven官方指...

网友评论

      本文标题:自建 Maven 仓库

      本文链接:https://www.haomeiwen.com/subject/iriomctx.html