[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 type
s),所以需要创建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的个人设置页面找到[私人 ...
随机推荐
- Zabbix JMX之tomcat监控
工作原理: 1.JAVA-GATEWAY Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦.所有后来为了解决这个监控问 ...
- 浅析git
git是什么 简单来说,Git,它是一个快速的 分布式版本控制系统 (Distributed Version Control System,简称 DVCS) . 同传统的 集中式版本控制系统 (Cen ...
- html onclick时间传字符串参数
经常忘记拼html中onclick事件传字符串引号的问题,所以今天记一下! 简单一句话 外面是"",里面就是'',外边是'',里边就是"". 示例: var ...
- mysql 服务启动失败
mysql 数据库连接失败 1.用naviCat Preiumn 连接本地的mysql 失败,查找原因,mysql 数据库服务没有启用,但是在服务列表里面没有找到对应的mysql 服务. 所以在cmd ...
- 今天给大家分享用Python matplotlib来写随机漫步的小程序
先安装两个库: pip install matplotlib pip install numpy 引用库: import matplotlib.pyplot as mp import numpy as ...
- CSS3字体发光效果
text-shadow 该属性为文本添加阴影效果 text-shadow: h-shadow v-shadow blur color; h-shadow: 水平阴影的位置(阴影水平偏移量),可为负值, ...
- Attrib +s +a +h +r 隐藏文件原理与破解
制作了一个PE启动盘,不过这个启动盘不能深度隐藏,否则没效果,可以又想不让别人看见PE启动盘的一些内容,防止别人误删或者修改,于是就想找一种可以隐藏文件的方法,普通的隐藏文件的方法如下:
- Linux环境下安装weblogic10.3.2
附件:weblogic10.3.2版本zip包和部署war包提取地址: weblogic.zip:https://pan.baidu.com/s/1Y1tmAhlXsO5Q4zPvOKGG5g 提取 ...
- 使用c#对MongoDB进行查询(1)
1.BsonDocument对象 在MongoDB.Bson命名空间下存在一个BsonDocument类,它是MongoDB的文档对象,代表着MongoDB中不规则数据一条条实体模型.可以使用Bson ...
- Spring配置文件中如何使用外部配置文件配置数据库连接
直接在spring的配置文件中applicationContext.xml文件中配置数据库连接也可以,但是有个问题,需要在url后带着使用编码集和指定编码集,出现了如下问题,&这个符号报错-- ...