Android

来源:互联网 发布:化学实验软件中文版 编辑:程序博客网 时间:2024/05/22 07:40

前言

在前面的文章中,以及说明了本地仓库的搭建及其gradle上传的使用;

automation - 使用Artifactory简单搭建本地library仓库

automation - 使用docker搭建基于artifactory的library仓库

1. root/build.gradle

根目录下的build.gradle 需要引入 artifactory :

// Top-level build file where you can add configuration options common to all sub-projects/modules.apply from: "$rootDir/config.gradle"buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.1'        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()        maven {            url urls.localUseMaven        }    }}task clean(type: Delete) {    delete rootProject.buildDir}

有人要说了,为什么使用了 config.gradle 不统一配置 artifactory 插件和 gradle tools 呢?

其实是可以配置的,我这里没有进行配置,你可以测试下,如果 gradle tools 有更新的话,不知道在 config.gradleandroid studio 可以检测到更新不?

2. module/build.gradle

配置 artifactory 上传插件,编译后上传 arr 到仓库;

apply plugin: 'com.android.library'apply from: "$rootDir/config.gradle"apply plugin: 'com.jfrog.artifactory'apply plugin: 'maven-publish'def MAVEN_LOCAL_PATH = urls.localUploadPathdef ARTIFACT_ID = artifactIds.coreuidef VERSION_NAME = versions.coreuidef GROUP_ID = groupIds.core/** * 命令行编译上传: *  (这是一条命令) *  gradle :core_ui:assembleRelease *  :core_ui:generatePomFileForMavenArrPublication   *  :core_ui:artifactoryPublish */android {    compileSdkVersion versions.complieSdk    buildToolsVersion versions.buildTools    defaultConfig {        minSdkVersion versions.minSdk        targetSdkVersion versions.targetSdk        versionCode versions.code        versionName versions.name    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile views.appcompat    compile views.design    compile project(path: ':core')}publishing {    publications {        // mavenArr 在这里        mavenArr(MavenPublication) {            groupId GROUP_ID            version = VERSION_NAME            artifactId ARTIFACT_ID            // 这里获得arr 生成的位置和上传            artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")        }    }}artifactory {    contextUrl = MAVEN_LOCAL_PATH    publish {        repository {            // The Artifactory repository key to publish to            repoKey = localRespos.repoName            username = localRespos.userName            password = localRespos.password            maven = true        }        defaults {            // 这里的 mavenArr 指向上面 publishing/publications/mavenArr            publications('mavenArr')        }    }    resolve {        repoKey = 'jcenter'    }}

这里使用了 config.gradle 统一管理信息,所有需要改变的东西都在 config.gradle 中进行修改;

可以执行下面命令执行上传:(这是一条命令)

 gradle :module_name:assembleRelease  :module_name:generatePomFileForMavenArrPublication  :module_name:artifactoryPublish

基本意思是:

生成 release arr 文件 => 生成 pom.xml 配置 => 上传

没有配置 全局 gradle 的话 ,可以使用项目根目录下的:

// 全局gradle xxx// uinxgradlew  xxx// windowsgradlew.bat  xxx

当然,也可以使用 android studio 自带的 gradletasks 面板,依次执行

assembleReleasegeneratePomFileForMavenArrPublication artifactoryPublish

这里写图片描述

0 0
原创粉丝点击