Gradle 插件上传 Maven 库配置详解

相云
2023-12-01

Gradle 插件上传 Maven 库配置详解


Gradle 插件上传 Maven 库,有两种方式,本文分别进行介绍。

Old Maven Plugin

Gradle 1.0 中提供的原始的,过时的发布机制将工件部署到 Maven 存储库。

如果我们的项目仅生成默认的 jar 文件。现在,想将此 jar 文件部署到本地 Maven 存储库,怎么做呢?

build.gradle 声明

使用 Maven plugin 插件,需要在项目的构建脚本 build.gradle 上添加插件引用声明:

apply plugin: 'maven'

上传配置

本地 Maven 库,上传配置:

apply plugin: 'groovy'
apply plugin: 'maven'
 
dependencies {
    implementation gradleApi()
    implementation localGroovy()
}
uploadArchives{
    repositories.mavenDeployer {
        //本地仓库路径,url的值为存储仓库地址
        repository(url: "file://localhost/tmp/myRepo/") 
        //groupId ,自行定义
        pom.groupId = 'com.sensorsdata.myplugin'
        //发布到仓库的构建id
        pom.artifactId = 'MyPlugin'
        //发布到仓库的插件版本号
        pom.version = '1.0.0'
    }
}

调用 uploadArchives 任务将生成 POM 并将工件和POM部署到指定的存储库。

将插件部署到 Maven 存储库时,Gradle 会自动为其生成 POM。

  • Maven POM 生成的默认值:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YG6ktGPD-1614254915170)(evernotecid://6FE75482-54A0-433A-9625-A01F7FEE92EC/appyinxiangcom/9896050/ENResource/p3164)]

  • apply plugin:应用 ‘groovy’ 插件是因为我们的项目是使用 Groovy 语言开发的,‘maven’ 插件在后面发布插件时会用到。
  • dependencies:声明依赖。
  • uploadArchive:这里是一些 maven 相关的配置,包括发布仓库的位置、groupId、artifactId、版本号,这里为了调试方便把位置选在项目根目录下的 repo 文件夹。

Maven 发布的三要素:

  • groupId:分组id,一般是公司域名倒过来
  • artifactId: 工程名,也可以不写,默认就是项目名
  • version:版本号

Maven Publish Plugin

在 Gradle 1.3 中,引入了一种新的发布机制。这种新机制引入了一些新概念和功能,这些功能使 Gradle 发布变得更加强大,现在已成为发布工件的首选选项。

build.gradle 声明

使用 Maven Publish Plugin,需要在构建脚本中添加代码启用以下插件:

apply plugin: 'maven-publish'

上传配置

本地 Maven 库,上传配置:

apply plugin: 'maven-publish'

publishing {
    repositories {
        maven {
            credentials {
                username 'username' // 仓库发布用户名
                password 'password' // 仓库发布用户密码
            }
            url 'trunk_url' // 仓库地址
        }
    }
    publications {
        maven(MavenPublication) {
            groupId 'group_id' // groupId
            artifactId 'artifact_id' // artifactId
            version '1.0.0' // 发布版本
            description 'This is a liberary to test v1.0.0' // 说明描述
        }
    }
}

例如,发布到本地的一个示例如下:

apply plugin: 'maven-publish'
publishing {
    publications {
        mavenJava(MavenPublication) {
            //定义插件的在本地 maven 中的 id
            groupId 'com.budaye.plugin'
            artifactId 'aop-plugin'
            //定义插件的在本地 maven 中的版本号
            version '1.0.3'
            from components.java
        }
    }
}
publishing {
    repositories {
        maven {
            // 发布位置
            url uri('/Users/apple/Documents/localMaven')
        }
    }
}

然后,我可以在 Gradle 任务列表中,选择并运行 “publishing" 下的 ”publish" 任务,这样就将我们的 Gradle 插件发布到本地了。


**PS:更多性能优化相关文章,请查看 --> 《Android 性能优化》
**PS:更多性能优化相关文章,请查看 --> 《Android 性能优化》
**PS:更多性能优化相关文章,请查看 --> 《Android 性能优化》

 类似资料: