博客搬迁至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 依赖:

检查最新版本

  1. buildscript {
  2. repositories {
  3. google()
  4. jcenter()
  5. }
  6. dependencies {
  7. classpath 'com.android.tools.build:gradle:3.0.1'
  8. classpath('com.github.wangjiegulu:rapidmavenpush:x.x.x') {
  9. exclude group: 'com.android.tools.build', module: 'gradle'
  10. }
  11. }
  12. }

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

  1. # project info
  2. POM_ARCHIVE_GROUP=com.github.wangjiegulu
  3. #POM_ARCHIVE_VERSION_NAME=0.0.1-SNAPSHOT (command typed)
  4. # aar or jar
  5. POM_PACKAGING=aar
  6. POM_DESC=test-mavenpush-plugin
  7. POM_URL=https://github.com/wangjiegulu
  8. POM_SCM_URL=scm:git@github.com:wangjiegulu
  9. POM_SCM_CONNECTION=scm:git@github.com:wangjiegulu
  10. POM_SCM_DEV_CONNECTION=git@github.com:wangjiegulu
  11. POM_LICENCE_NAME=The Apache Software License, Version 2.0
  12. POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
  13. POM_LICENCE_DIST=wangjie
  14. POM_DEVELOPER_ID=wangjie
  15. POM_DEVELOPER_NAME=Wang Jie
  16. POM_DEVELOPER_EMAIL=tiantian.china.2@gmail.com

1.2.2 maven_local.properties

  1. # maven repository
  2. POM_REPOSITORY_URL=/Users/wangjie/.m2/repository
  3. POM_REPOSITORY_URL_SNAPSHOT=/Users/wangjie/.m2/repository
  4. POM_SIGN=false
  5. # project info
  6. POM_ARCHIVE_ID=mavenpush-plugin-depmodule-local

1.2.3 maven_central.properties

  1. POM_OSSRH_USERNAME=username
  2. POM_OSSRH_PASSWORD=password
  3. # maven repository
  4. POM_REPOSITORY_URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
  5. POM_REPOSITORY_URL_SNAPSHOT=https://oss.sonatype.org/content/repositories/snapshots/
  6. POM_SIGN=true
  7. # Already configure in ~/.gradle/gradle.properties
  8. #signing.keyId=
  9. #signing.password=
  10. #signing.secretKeyRingFile=
  11. # project info
  12. POM_ARCHIVE_ID=mavenpush-plugin-depmodule

1.3 应用 Plugin & properties

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

  1. apply plugin: 'com.github.wangjiegulu.plg.rapidmavenpush'
  2. rapidMavenPush {
  3. // 如果是 true,会在编译时期打印被注入的 properties
  4. printProperties = true
  5. // 如果是 true,在注入 properties 发生错误时会终止编译
  6. abortOnError = false
  7. // 是否禁用 Rapid Maven Push Plugin
  8. disable = false
  9. // 如果 `POM_MAVEN_TYPE` 没有被设置,则使用默认的 maven type。
  10. defaultMavenType = 'local'
  11. mavens {
  12. maven {
  13. mavenType = 'local'
  14. propertyFiles = [
  15. file("mavenupload/maven_common.properties"),
  16. file("mavenupload/maven_local.properties")
  17. ]
  18. // Property Inject Mode: If the properties is already set, replace it or skip
  19. // property 注入模式:如果 properties 已经被设置过,则替换还是跳过
  20. propertyInjectMode = 'replace'
  21. }
  22. maven {
  23. mavenType = 'company'
  24. propertyFiles = [
  25. file("mavenupload/maven_common.properties"),
  26. file("mavenupload/maven_company.properties")
  27. ]
  28. propertyInjectMode = 'replace'
  29. }
  30. maven {
  31. mavenType = 'central'
  32. propertyFiles = [
  33. file("mavenupload/maven_common.properties"),
  34. file("mavenupload/maven_central.properties")
  35. ]
  36. propertyInjectMode = 'replace'
  37. }
  38. }
  39. }

1.4 上传 Archives

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

执行这个 task !

上传 archives 到本地仓库:

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

上传 archives to 到中央库:

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

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

1.5 支持的 parameters & properties

  1. // maven type, 只能通过在 `build.gradle` 设置 `ext.POM_MAVEN_TYPE=xxx` 或者在命令行中设置 `-PPOM_MAVEN_TYPE=xxx` 或者在 `gradle.properties` 中设置 `PPOM_MAVEN_TYPE=xxx`
  2. POM_MAVEN_TYPE
  3. // maven repository parameters
  4. POM_REPOSITORY_URL
  5. POM_REPOSITORY_URL_SNAPSHOT
  6. POM_OSSRH_USERNAME
  7. POM_OSSRH_PASSWORD
  8. // sign parameters
  9. POM_SIGN
  10. signing.keyId
  11. signing.password
  12. signing.secretKeyRingFile
  13. // archive parameters
  14. POM_ARCHIVE_GROUP
  15. POM_ARCHIVE_ID
  16. POM_ARCHIVE_VERSION_NAME
  17. POM_PACKAGING
  18. POM_DESC
  19. POM_URL
  20. POM_SCM_URL
  21. POM_SCM_CONNECTION
  22. POM_SCM_DEV_CONNECTION
  23. POM_LICENCE_NAME
  24. POM_LICENCE_URL
  25. POM_LICENCE_DIST
  26. POM_DEVELOPER_ID
  27. POM_DEVELOPER_NAME
  28. POM_DEVELOPER_EMAIL

License

  1. Copyright 2018 Wang Jie
  2. Licensed under the Apache License, Version 2.0 (the "License");
  3. you may not use this file except in compliance with the License.
  4. You may obtain a copy of the License at
  5. http://www.apache.org/licenses/LICENSE-2.0
  6. Unless required by applicable law or agreed to in writing, software
  7. distributed under the License is distributed on an "AS IS" BASIS,
  8. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9. See the License for the specific language governing permissions and
  10. 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. 【BZOJ2186】沙拉公主的困惑(数论)

    [BZOJ2186]沙拉公主的困惑(数论) 题面 BZOJ 题解 考虑答案是啥 先假设\(n=m\) 现在求的就是\(\varphi(m!)\) 但是现在\(n!\)是\(m!\)的若干倍 我们知道 ...

  2. [BZOJ4542] [Hnoi2016] 大数 (莫队)

    Description 小 B 有一个很大的数 S,长度达到了 N 位:这个数可以看成是一个串,它可能有前导 0,例如00009312345.小B还有一个素数P.现在,小 B 提出了 M 个询问,每个 ...

  3. golang []byte转string

    golang中,字符切片[]byte转换成string最简单的方式是 package main import ( "fmt" _ "unsafe" ) func ...

  4. 关于无法下载android开发工具的解决方法

    目前中国内地访问android网站需要FQ.不过这个网站http://www.androiddevtools.cn/提供了所有的和官网上一样的android开发工具和一些其他问题的解决方法.为andr ...

  5. CucumberJS 资源

    https://cucumber.io/docs/reference/javascript https://github.com/cucumber/cucumber-js

  6. cookie 的增加,销毁,读取

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  7. 以@Value方式注入 properties 配置文件

    类中读取XML文件不是太方便,所以使用*.properties是比较好的办法 注入方式获取是最直接,最快捷的.这个操作主要涉三个部分,下面分别介绍: 首先,配置文件准备.这里文件名命名为applica ...

  8. 一些常用的CSS样式

    1. overflow: auto 允许盒子容器内容自动上下滚动 2. style="color:red solid" 设置元素边框样式 3.  white-space:nowra ...

  9. 笔记:Jersey REST API 设计

    REST 统一接口 REST 使用 HTTP 协议的通用方法作为统一接口的标准词汇,REST 服务所提供的方法信息都在 HTTP 方法里,每一种HTTP请求方法都可以从安全性和幂等性两方面考虑,这对正 ...

  10. 1833 深坑 TLE 求解

    题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 ...