[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:[email protected]:wangjiegulu
POM_SCM_CONNECTION=scm:[email protected]:wangjiegulu
[email protected]: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
[email protected]

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.

原文地址:https://www.cnblogs.com/tiantianbyconan/p/8698509.html

时间: 2024-10-07 12:45:03

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

创建bitbucket的私有maven仓库,把aar (library)上传到bitbucket的maven仓库(by 星空武哥)

创建bitbucket的私有maven仓库,把aar (library)上传到bitbucket的maven仓库 转载请标注原文地址:http://blog.csdn.net/lsyz0021/article/details/52065404 当我们使用android studio的开发的时候,我们可以很方面的使用compile " "命令很方便的使用别人的第三方aar库 比如我们引用okhttp的时候就可以在gradle中: dependencies { compile 'com.s

如何上传jar包到maven仓库

拷贝jar包到非本地仓库目录 进入控制台,输入下面命令即可: mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=ojdbc6-11.2.0.3.jar -Durl=http://ip:port/nexus/content/repositories/releases/ -DrepositoryId=Releases 其中Durl.Drep

如何上传jar包至Maven私服

如何上传jar包至Maven私服 1.通过浏览器进入,点击右上角的. 2.在弹出的登录窗口中输入用户名和密码. 3.登录成功之后,点击左侧列表中的Views/Respsitories-->Respsitories. 4.在打开的标签页中,选择3rd party,我们自己的jar包都要上传到3rdparty中.在下方的窗片中,可以浏览到所有的第三方的jar包. 5.点击下方窗片的,准备上传我们自己的包. GAV Definition 选择:GAVParameters. 依次填写Group.Arti

php如何解析IOS/Android上传的Json消息

使用yii框架php服务器接收IOS/Android上传的Json消息时,$_POST. Yii::app()->request->getPost()结果都将为null. 使用file_get_contents("php://input")才能够正常获取. "php://input"可以访问请求的原始数据,并且带给内存的压力更小. 例子如下: class appController extends Controller { public function

android 上传文件"Content-Type",为"application/octet-stream" 用php程序在服务端用$GLOBALS['HTTP_RAW_POST_DATA']接受(二)

服务端php程序file_up.php function uploadFileBinary() { $this->initData(); $absoluteName = ""; $fid = ""; $handleWrite = null; if(!empty($GLOBALS['HTTP_RAW_POST_DATA']) && strlen($GLOBALS['HTTP_RAW_POST_DATA'])>0) { if(!empty($

Android上传文件之FTP

android客户端实现FTP文件(包括图片)上传应该没什么难度.写下来就了为了记录一下,望能帮到新手. 需要用到 commons-net-3.0.1.jar,后面附上jar包. 直接上代码: /**  * 通过ftp上传文件  * @param url ftp服务器地址 如: 192.168.1.110  * @param port 端口如 : 21  * @param username  登录名  * @param password   密码  * @param remotePath  上到

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

Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简单了,下面是我写的一个上传的工具类: package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream;

android 上传文件

android对于上传文件,还是很简单的,和java里面的上传都是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要一些content-type这些参数的配置!  如果这些都弄好了,上传就很简单了!   下面是我写的一个上传的工具类: package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; import java.io.FileInput

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

Android中实现上传文件,其实是很简单的,和在java里面是一样的,基本上都是熟悉操作输出流和输入流!还有一个特别重要的就是需要配置content-type的一些参数!如果这些都弄好了,上传就很简单了,下面是我写的一个上传的工具类: package com.spring.sky.image.upload.network; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream;