概述
-
-
- 注册 bintray 账号
- 创建插件项目
-
- 1. 目录结构
- 2. 项目根目录 buidle.gradle 配置
- 3. 插件 Module build.gradle 文件
- 4. maven.gradle 文件
- 5. bintray.gradle 文件
- 6. 执行
-
- 使用
-
注册 bintray
账号
- 注册地址
- 在个人仓库中新建一个仓库
可以参考之前的博客 传送
创建插件项目
可以先创建Module->Android Library,然后删掉多余的文件和文件夹。 MyPlugin
必须是 groovy
格式的文件:MyPlugin.groovy
1. 目录结构
2. 项目根目录 buidle.gradle
配置
buildscript {
dependencies {
...
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
}
}
3. 插件 Module build.gradle
文件
apply plugin: 'groovy'
apply plugin: 'maven'
//发布 Jcenter
apply from: 'bintray.gradle'
//本地
apply from: 'maven.gradle'
4. maven.gradle
文件
apply plugin: 'maven'
//发布在本地,../plugin 文件夹
uploadArchives {
repositories.mavenDeployer {
repository(url: uri('../plugin'))
pom.groupId = 'com.totcy.android'
pom.artifactId = 'gradle-plugin-test'
pom.version = '1.0.0'
}
}
5. bintray.gradle
文件
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'signing'
apply plugin: 'maven'
//使用: classpath 'com.totcy.android:gradle-plugin-test:1.0.0'
group = "com.totcy.android"
version = "1.0.0"
project.archivesBaseName = "gradle-plugin-test"
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
task sourceJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
ext {
pomFilePath = "${project.buildDir.absolutePath}/tmp/pom.xml"
pomFile = file(pomFilePath)
}
configurations {
pom
}
artifacts {
archives jar
archives sourceJar
archives javadocJar
if (pomFile.exists()) {
pom pomFile
}
}
task signJars(type: Sign, dependsOn: [jar, javadocJar, sourceJar]) {
sign configurations.archives
}
task signPom(type: Sign) {
sign configurations.pom
}
if (project.ext.pomFile.exists()) {
task preparePublication(dependsOn: [signJars, signPom])
} else {
task preparePublication(dependsOn: signJars)
}
def getSignatureFiles = {
def allFiles = project.tasks.signJars.signatureFiles.collect{it}
def signedSources = allFiles.find{ it.name.contains('-sources') }
def signedJavadoc = allFiles.find{ it.name.contains('-javadoc') }
def signedJar = (allFiles - [signedSources, signJars])[0]
return [
[archive: signedSources, classifier: 'sources', extension: 'jar.asc'],
[archive: signedJavadoc, classifier: 'javadoc', extension: 'jar.asc'],
[archive: signedJar, classifier: 'null', extension: 'jar.asc']
]
}
def getPomSignature = {
return project.tasks.signPom.signatureFiles.collect{ it }[0]
}
def siteUrl = 'https://github.com/792814781/gradle-plugin-test'
def gitUrl = 'https://github.com/792814781/gradle-plugin-test.git'
def issueUrl = 'https://github.com/792814781/gradle-plugin-test/issues'
install {
repositories.mavenInstaller {
// generates POM.xml with proper parameters
pom {
project {
packaging 'jar'
name 'The Android Plugin for Totcy.'
url siteUrl
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'bintray用户名账户'
name '用户名'
email '邮箱'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven" //bintray 上面 Package名字
name = "gradle-plugin-test" //bintray 上面项目名
desc = 'The Android Plugin for Totcy.'
websiteUrl = siteUrl
vcsUrl = gitUrl
issueTrackerUrl = issueUrl
licenses = ["Apache-2.0"]
labels = 'Groovy'
publicDownloadNumbers = true
publish = true
}
}
bintray.user
和 bintray.apikey
属于账户私密信息,定义在 local.properties
,这两个信息都可以在 bintray 个人信息里面找到
6. 执行
./gralew install
./gralew bintrayUpload
执行成功就可以在 bintray 个人仓库里面看到了,最后记得 点击Add to Jcenter
提交审核。
使用
使用的项目根目录 build.gradle
buildscript {
repositories {
...
//发布在本地文件夹
maven { url "../plugin" }
}
dependencies {
...
classpath 'com.totcy.android:gradle-plugin-test:1.0.0'
}
}
allprojects {
repositories {
...
//审核之前添加仓库地址即可,通过后可以删除
maven { url "https://dl.bintray.com/intotcy/maven" }
}
}
使用的项目 Module gradle.build
apply plugin: 'gradle-plugin'
最后
以上就是鳗鱼毛豆为你收集整理的Android Gradle plugin 开发并上传到JCenter的全部内容,希望文章能够帮你解决Android Gradle plugin 开发并上传到JCenter所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复