[Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin
博客搬迁至https://blog.wangjiegulu.com
RSS订阅:https://blog.wangjiegulu.com/feed.xml
RapidMavenPushPlugin
用于上传你的 library 库到多个 Maven 仓库的 Gradle 插件。
Github: https://github.com/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/repository。 - maven_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 info
POM_ARCHIVE_GROUP=com.github.wangjiegulu
#POM_ARCHIVE_VERSION_NAME=0.0.1-SNAPSHOT (command typed)
# aar or jar
POM_PACKAGING=aar
POM_DESC=test-mavenpush-plugin
POM_URL=https://github.com/wangjiegulu
POM_SCM_URL=scm:git@github.com:wangjiegulu
POM_SCM_CONNECTION=scm:git@github.com:wangjiegulu
POM_SCM_DEV_CONNECTION=git@github.com:wangjiegulu
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=wangjie
POM_DEVELOPER_ID=wangjie
POM_DEVELOPER_NAME=Wang Jie
POM_DEVELOPER_EMAIL=tiantian.china.2@gmail.com
1.2.2 maven_local.properties
# maven repository
POM_REPOSITORY_URL=/Users/wangjie/.m2/repository
POM_REPOSITORY_URL_SNAPSHOT=/Users/wangjie/.m2/repository
POM_SIGN=false
# project info
POM_ARCHIVE_ID=mavenpush-plugin-depmodule-local
1.2.3 maven_central.properties
POM_OSSRH_USERNAME=username
POM_OSSRH_PASSWORD=password
# maven repository
POM_REPOSITORY_URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
POM_REPOSITORY_URL_SNAPSHOT=https://oss.sonatype.org/content/repositories/snapshots/
POM_SIGN=true
# Already configure in ~/.gradle/gradle.properties
#signing.keyId=
#signing.password=
#signing.secretKeyRingFile=
# project info
POM_ARCHIVE_ID=mavenpush-plugin-depmodule
1.3 应用 Plugin & properties
在你 library 的 build.gradle 文件中, 你需要以如下方式来 apply RapidMavenPushPlugin 插件:
apply plugin: 'com.github.wangjiegulu.plg.rapidmavenpush'
rapidMavenPush {
// 如果是 true,会在编译时期打印被注入的 properties
printProperties = true
// 如果是 true,在注入 properties 发生错误时会终止编译
abortOnError = false
// 是否禁用 Rapid Maven Push Plugin
disable = 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 parameters
POM_REPOSITORY_URL
POM_REPOSITORY_URL_SNAPSHOT
POM_OSSRH_USERNAME
POM_OSSRH_PASSWORD
// sign parameters
POM_SIGN
signing.keyId
signing.password
signing.secretKeyRingFile
// archive parameters
POM_ARCHIVE_GROUP
POM_ARCHIVE_ID
POM_ARCHIVE_VERSION_NAME
POM_PACKAGING
POM_DESC
POM_URL
POM_SCM_URL
POM_SCM_CONNECTION
POM_SCM_DEV_CONNECTION
POM_LICENCE_NAME
POM_LICENCE_URL
POM_LICENCE_DIST
POM_DEVELOPER_ID
POM_DEVELOPER_NAME
POM_DEVELOPER_EMAIL
License
Copyright 2018 Wang Jie
Licensed 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
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed 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 and
limitations under the License.
[Android]上传到多个Maven仓库的Gradle插件RapidMavenPushPlugin的更多相关文章
- Android 上传开源项目到 jcenter 实战踩坑之路
本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...
- gradle上传jar包到maven公共仓库
首先这里说的中央仓库 是指的 https://issues.sonatype.org/ 而不是maven私服. 其次是使用gradle上传jar包,maven上传,网上有很多教程,这里不做赘述. 首选 ...
- Android开发(二十五)——Android上传文件至七牛
设置头像: Drawable drawable = new BitmapDrawable(dBitmap); //Drawable drawable = Drawable.createFromPath ...
- android上传文件到服务器
package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; i ...
- 【经验记录】Android上传文件到服务器
Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...
- Android上传文件到服务器(转)
Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...
- android -上传文件到服务器
android上传文件到服务器 重点:最好是设置好content-type这些参数的配置! package com.spring.sky.image.upload.network; ...
- android 上传文件
android对于上传文件,还是非常easy的,和java里面的上传都是一样的,基本上都是熟悉操作输出流和输入流!另一个特别重要的就是须要一些content-type这些參数的配置! 假设这些都弄好 ...
- .NET CORE上传文件到码云仓库【搭建自己的图床】
.NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人 ...
随机推荐
- 洛谷P3796 【模板】AC自动机(加强版)(AC自动机)
洛谷题目传送门 先膜一发yyb巨佬 orz 想学ac自动机的话,推荐一下yyb巨佬的博客,本蒟蒻也是从那里开始学的. 思路分析 裸的AC自动机,这里就不讲了.主要是这题太卡时了,尽管时限放的很大了.. ...
- 【BZOJ1009】GT考试(KMP算法,矩阵快速幂,动态规划)
[BZOJ1009]GT考试(KMP算法,矩阵快速幂,动态规划) 题面 BZOJ 题解 看到这个题目 化简一下题意 长度为\(n\)的,由\(0-9\)组成的字符串中 不含串\(s\)的串的数量有几个 ...
- [SDOI2015]约数个数和
Sol 首先有个结论 \(\sum_{i=1}^{m}\sum_{j=1}^{n}d(i*j)=\sum_{i=1}^{m}\sum_{j=1}^{n}\sum_{x|i}\sum_{y|i}[gcd ...
- [BZOJ2761] [JLOI2011] 不重复数字 (set)
Description 给出N个数,要求把其中重复的去掉,只保留第一次出现的数. 例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 ...
- hibernate 反向生成 实体类
1,配置数据库连接 步骤. 点击 windows -> open perspective - > myeclipse datebase Exprorer 打开了dateb ...
- 树莓派centos安装的基本配置
萌新再发一帖,这篇文章呢主要是为大家在树莓派上安装centos以后提供一个问题的解决方案. 首先我呢觉得好奇就在某宝上花了两百来块钱买了一套树莓派,很多人喜欢在树莓派上安装Debian,我呢更青睐用R ...
- FPGA阶段性总结及后续博文计划
之前的博客主要记录了在培训过程中或自己设计小项目时的一些总结,主要涉及通用设计技巧,简单外设接口驱动等.因此内容比较杂,缺乏目的性.考虑设计通用性及提高学习开发效率,后续FPGA设计和博文主要是高带宽 ...
- Python机器学习中文版目录
建议Ctrl+D保存到收藏夹,方便随时查看 人工智能(AI)学习资料库 Python机器学习简介 第一章 让计算机从数据中学习 将数据转化为知识 三类机器学习算法 第二章 训练机器学习分类算法 透过人 ...
- Cesium解决按住滚轮旋转时进入地下的问题
viewer.clock.onTick.addEventListener(function () { setMinCamera()}) var setMinCamera = functi ...
- Java设计模式(五)Prototype原型模式
一.场景描述 创建型模式中,从工厂方法模式,抽象工厂模式,到建造者模式,再到原型模式,我的理解是,创建对象的方式逐步从编码实现转向内存对象处理. 例如,在“仪器数据采集器”的子类/对象“PDF文件数据 ...