700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > [Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin

[Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin

时间:2024-05-27 16:36:24

相关推荐

[Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin

博客搬迁至

RSS订阅:/feed.xml

RapidMavenPushPlugin

用于上传你的 library 库到多个 Maven 仓库的 Gradle 插件。

Github: /wangjiegulu/RapidMavenPushPlugin

1. 怎么使用

1.1 添加依赖

在你项目根目录的build.gradle文件中增加RapidMavenPushPlugin依赖:

检查最新版本

buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:3.0.1'classpath('com.github.wangjiegulu:rapidmavenpush:x.x.x') {exclude group: 'com.android.tools.build', module: 'gradle'}}}

1.2 创建 properties files

现在你有3个 Maven 仓库(maven types),所以需要创建3个 maven properties archive 文件和1个通用的 archive properties 文件(properties 文件的名字和位置可以是任意的):

maven_local.properties: 上传 archives 到本地的 maven 仓库, 默认在你电脑的~/.m2/repositorymaven_company.properties: 上传 archives 到你公司的 maven 仓库,他部署在你公司的服务器上面。maven_central.properties: 上传 archives 到 maven 中央库。common.properties: 上面3个 maven 仓库的通用 properties。

NOTE: 当project.afterEvaluate时, 所有 properties 都会被自动注入到project.ext中,所以在那之后你可以以诸如$POM_ARCHIVE_ID的方式来使用它们。

1.2.1 maven_common.properties

# project infoPOM_ARCHIVE_GROUP=com.github.wangjiegulu#POM_ARCHIVE_VERSION_NAME=0.0.1-SNAPSHOT (command typed)# aar or jarPOM_PACKAGING=aarPOM_DESC=test-mavenpush-pluginPOM_URL=/wangjieguluPOM_SCM_URL=scm:git@:wangjieguluPOM_SCM_CONNECTION=scm:git@:wangjieguluPOM_SCM_DEV_CONNECTION=git@:wangjieguluPOM_LICENCE_NAME=The Apache Software License, Version 2.0POM_LICENCE_URL=/licenses/LICENSE-2.0.txtPOM_LICENCE_DIST=wangjiePOM_DEVELOPER_ID=wangjiePOM_DEVELOPER_NAME=Wang JiePOM_DEVELOPER_EMAIL=tiantian.china.2@

1.2.2 maven_local.properties

# maven repositoryPOM_REPOSITORY_URL=/Users/wangjie/.m2/repositoryPOM_REPOSITORY_URL_SNAPSHOT=/Users/wangjie/.m2/repositoryPOM_SIGN=false# project infoPOM_ARCHIVE_ID=mavenpush-plugin-depmodule-local

1.2.3 maven_central.properties

POM_OSSRH_USERNAME=usernamePOM_OSSRH_PASSWORD=password# maven repositoryPOM_REPOSITORY_URL=/service/local/staging/deploy/maven2/POM_REPOSITORY_URL_SNAPSHOT=/content/repositories/snapshots/POM_SIGN=true# Already configure in ~/.gradle/gradle.properties#signing.keyId=#signing.password=#signing.secretKeyRingFile=# project infoPOM_ARCHIVE_ID=mavenpush-plugin-depmodule

1.3 应用 Plugin & properties

在你 library 的build.gradle文件中, 你需要以如下方式来 apply RapidMavenPushPlugin 插件:

apply plugin: 'com.github.wangjiegulu.plg.rapidmavenpush'rapidMavenPush {// 如果是 true,会在编译时期打印被注入的 propertiesprintProperties = true// 如果是 true,在注入 properties 发生错误时会终止编译abortOnError = false// 是否禁用 Rapid Maven Push Plugindisable = false// 如果 `POM_MAVEN_TYPE` 没有被设置,则使用默认的 maven type。defaultMavenType = 'local'mavens {maven {mavenType = 'local'propertyFiles = [file("mavenupload/maven_common.properties"),file("mavenupload/maven_local.properties")]// Property Inject Mode: If the properties is already set, replace it or skip// property 注入模式:如果 properties 已经被设置过,则替换还是跳过propertyInjectMode = 'replace'}maven {mavenType = 'company'propertyFiles = [file("mavenupload/maven_common.properties"),file("mavenupload/maven_company.properties")]propertyInjectMode = 'replace'}maven {mavenType = 'central'propertyFiles = [file("mavenupload/maven_common.properties"),file("mavenupload/maven_central.properties")]propertyInjectMode = 'replace'}}}

1.4 上传 Archives

在编译之后,rapid maven push plugin 自动创建了一个名为rapidUploadArchives的 task。

执行这个 task !

上传 archives 到本地仓库:

./gradlew clean :depmodule:rapidUploadArchives -PPOM_MAVEN_TYPE=local

上传 archives to 到中央库:

./gradlew clean :depmodule:rapidUploadArchives -PPOM_MAVEN_TYPE=central

NOTE: 如果你没有在build.gradle使用ext.POM_MAVEN_TYPE=xxx的方式进行设置的话,POM_MAVEN_TYPE参数是必要的。

1.5 支持的 parameters & properties

// maven type, 只能通过在 `build.gradle` 设置 `ext.POM_MAVEN_TYPE=xxx` 或者在命令行中设置 `-PPOM_MAVEN_TYPE=xxx` 或者在 `gradle.properties` 中设置 `PPOM_MAVEN_TYPE=xxx`POM_MAVEN_TYPE// maven repository parametersPOM_REPOSITORY_URLPOM_REPOSITORY_URL_SNAPSHOTPOM_OSSRH_USERNAMEPOM_OSSRH_PASSWORD// sign parametersPOM_SIGNsigning.keyIdsigning.passwordsigning.secretKeyRingFile// archive parametersPOM_ARCHIVE_GROUPPOM_ARCHIVE_IDPOM_ARCHIVE_VERSION_NAMEPOM_PACKAGINGPOM_DESCPOM_URLPOM_SCM_URLPOM_SCM_CONNECTIONPOM_SCM_DEV_CONNECTIONPOM_LICENCE_NAMEPOM_LICENCE_URLPOM_LICENCE_DISTPOM_DEVELOPER_IDPOM_DEVELOPER_NAMEPOM_DEVELOPER_EMAIL

License

Copyright Wang JieLicensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。