博客搬迁至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的更多相关文章

  1. Android 上传开源项目到 jcenter 实战踩坑之路

    本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...

  2. gradle上传jar包到maven公共仓库

    首先这里说的中央仓库 是指的 https://issues.sonatype.org/ 而不是maven私服. 其次是使用gradle上传jar包,maven上传,网上有很多教程,这里不做赘述. 首选 ...

  3. Android开发(二十五)——Android上传文件至七牛

    设置头像: Drawable drawable = new BitmapDrawable(dBitmap); //Drawable drawable = Drawable.createFromPath ...

  4. android上传文件到服务器

    package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; i ...

  5. 【经验记录】Android上传文件到服务器

    Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...

  6. Android上传文件到服务器(转)

    Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简 ...

  7. android -上传文件到服务器

    android上传文件到服务器       重点:最好是设置好content-type这些参数的配置!     package com.spring.sky.image.upload.network; ...

  8. android 上传文件

    android对于上传文件,还是非常easy的,和java里面的上传都是一样的,基本上都是熟悉操作输出流和输入流!另一个特别重要的就是须要一些content-type这些參数的配置!  假设这些都弄好 ...

  9. .NET CORE上传文件到码云仓库【搭建自己的图床】

    .NET CORE上传文件到码云仓库[搭建自己的图床] 先建一个公共仓库(随意提交一个README文件或者.gitignore文件保证master分支的存在),然后到gitee的个人设置页面找到[私人 ...

随机推荐

  1. Jmeter_针对响应信息不明确的接口做关联

    下午写一个新功能的接口脚本,遇到几个技术问题,现在将解决方案写出来 1:做接口关联的时候,发现接口响应没有可以利用的信息.如下图只返回了一个成功的标识,这样的接口如何与之关联? 通过抓包观察后续的修改 ...

  2. [SDOI2010]粟粟的书架

    题目大意: 网址:https://daniu.luogu.org/problemnew/show/2468 大意:本题有两问: [1] 给定一个\(R*C\)的带权矩阵,询问\(2×10^5\)次在一 ...

  3. 【SDOI2009】HH去散步(矩阵快速幂)

    题面 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因为HH是 ...

  4. [SCOI2005]王室联邦

    分块基本没有限制 所以每次大于等于b就分一块 # include <bits/stdc++.h> # define RG register # define IL inline # def ...

  5. Heavy Transportation POJ - 1797

    题意 给你n个点,1为起点,n为终点,要求所有1到n所有路径中每条路径上最小值的最最值. 思路 不想打最短路 跑一边最大生成树,再扫一遍1到n的路径,取最小值即可,类似Frogger POJ - 22 ...

  6. 使用Ant打包Web前台程序

    概述 本文通过一个简单的Web项目作为例子描述如何用ANT完成Web前台程序的打包工作.包含文件拷贝.编译.打包三部分:完成这三部就可以得到一个War了,放到Tomcat下就可以运行了. ANT的安装 ...

  7. FJUT16级第一周寒假作业题解J题

    题目链接:http://210.34.193.66:8080/vj/Contest.jsp?cid=160#P9 涨姿势之区间刷新 TimeLimit:2000MS  MemoryLimit:128M ...

  8. 【转】UML的9种图例解析

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  9. Win10_x86_x64PE维护光盘——我用过最好用的PE

    先感谢hongxj和fish2006两位大大提供的PE. 先放出所有工具的下载地址: hongxj的PE:https://yunpan.cn/crAw6HS6ar9ck  访问密码 4a4e fish ...

  10. Python实现制度转换(货币,温度,长度)

    人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中: 人民币和美元间汇率固定为:1美元 = 6.78人民币. 程序可以接受人民币或美元输入,转换为美元或人民币输出.人民币采用R ...