Android - Gradle 使用干货 之 artifactory仓库上传arr 配置
前言在前面的文章中,以及说明了本地仓库的搭建及其gradle上传的使用;automation - 使用Artifactory简单搭建本地library仓库automation - 使用docker搭建基于artifactory的library仓库1. root/build.gradle根目录下的build.gradle 需要引入 artifactory :// Top-level build fi
前言
在前面的文章中,以及说明了本地仓库的搭建及其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.gradle
下 android 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.localUploadPath
def ARTIFACT_ID = artifactIds.coreui
def VERSION_NAME = versions.coreui
def 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
// uinx
gradlew xxx
// windows
gradlew.bat xxx
当然,也可以使用 android studio
自带的 gradle
的 tasks
面板,依次执行
assembleRelease
generatePomFileForMavenArrPublication
artifactoryPublish
完
更多推荐
所有评论(0)