Опубликовать aar файл в Maven Central с Gradle все еще не работает:
Хорошо, дайте reapeat все шаги, которые я выполнил, чтобы "Опубликовать aar файл в Maven Central с помощью Gradle" (в основном я следил за этим guide), чтобы быть уверенным...
1) Я использую "Android Studio" , и у меня есть эта простая андроидная библиотека, которую я хотел бы получить на maven: https://github.com/danielemaddaluno/Android-Update-Checker
2) В папке UpdateCheckerLib у меня есть код lib выше. И применяя в build.gradle этой папки apply plugin: 'com.android.library'
, я получил в качестве выходного .aar в каталоге build/output/aar/каталога модуля
3) Мой первый шаг состоял в том, чтобы найти утвержденный репозиторий. Я решил использовать репозиторий
6) Я добавил в файл gradle.properties, расположенный в корне, следующие строки:
VERSION_NAME=1.0.1-SNAPSHOT
VERSION_CODE=2
GROUP=com.github.danielemaddaluno
POM_DESCRIPTION=Android Update Checker
POM_URL=https://github.com/danielemaddaluno/Android-Update-Checker
POM_SCM_URL=https://github.com/danielemaddaluno/Android-Update-Checker
POM_SCM_CONNECTION=scm:[email protected]:danielemaddaluno/Android-Update-Checker.git
POM_SCM_DEV_CONNECTION=scm:[email protected]:danielemaddaluno/Android-Update-Checker.git
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=repo
POM_DEVELOPER_ID=danielemaddaluno
POM_DEVELOPER_NAME=Daniele Maddaluno
7) Внутри корня я изменил build.gradle следующим образом:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
def isReleaseBuild() {
return version.contains("SNAPSHOT") == false
}
allprojects {
version = VERSION_NAME
group = GROUP
repositories {
mavenCentral()
}
}
apply plugin: 'android-reporting'
8) Я прочитал, что для каждого модуля или приложения я хочу загрузить в центр, я должен:
предоставить gradle.propeties изменить build.gradle, чтобы добавить следующую строку в конец:apply from: '../maven_push.gradle'
Итак, в папке UpdateCheckerLib I:
POM_NAME=Android Update Checker
POM_ARTIFACT_ID=androidupdatechecker
POM_PACKAGING=aar
9) Чтобы подписать мои артефакты, я сделал:
gpg --gen-key
gpg --list-keys --> get my PubKeyId...
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys PubKeyId
signing.keyId=xxxxxxx
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=~/.gnupg/secring.gpg
nexusUsername=YourSonatypeJiraUsername
nexusPassword=YourSonatypeJiraPassword
12) Наконец gradle uploadArchives
FAILURE: Build failed with an exception.
* Where:
Build file '/home/madx/Documents/Workspace/Android-Update-Checker/UpdateCheckerLib/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':UpdateCheckerLib'.
> Could not create plugin of type 'LibraryPlugin'.
Опубликовать aar файл в jCenter с Gradle все еще не работает:
1) Зарегистрировано Bintray с помощью username
: danielemaddaluno
gpg --gen-key
gpg -a --export [email protected] > public_key_sender.asc
gpg -a --export-secret-key [email protected] > private_key_sender.asc
5) Я добавил эти две строки в build.gradle
в корень
classpath 'com.github.dcendents:android-maven-plugin:1.2'
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1"
Итак, мой собственный build.gradle
в корне выглядит следующим образом:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1"
}
}
allprojects {
repositories {
jcenter()
}
}
6) Я изменил свой build.gradle
, расположенный внутри моей папки проекта, и выглядит так:
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: "com.jfrog.bintray"
// This is the library version used when deploying the artifact
version = "1.0.0"
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
//applicationId "com.madx.updatechecker.lib"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.jsoup:jsoup:1.8.1'
}
def siteUrl = 'https://github.com/danielemaddaluno/Android-Update-Checker' // Homepage URL of the library
def gitUrl = 'https://github.com/danielemaddaluno/Android-Update-Checker.git' // Git repository URL
group = "com.github.danielemaddaluno.androidupdatechecker" // Maven Group ID for the artifact
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'The project aims to provide a reusable instrument to check asynchronously if exists any newer released update of your app on the Store.'
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'danielemaddaluno'
name 'Daniele Maddaluno'
email '[email protected]'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
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"
name = "androidupdatechecker"
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
7) Я добавил в корневой файл local.properties
следующие строки:
bintray.user=<your bintray username>
bintray.apikey=<your bintray API key>
PATH=$PATH:/etc/android-studio/gradle/gradle-2.2.1/bin
9) Откройте терминал "Android Studio" и выполните:
gradle bintrayUpload
Last Synced: Never
Last Sync Status: Validation Failed
Last Sync Errors:
Missing Signature:
'/com/github/danielemaddaluno/androidupdatechecker/UpdateCheckerLib/1.0.0/UpdateCheckerLib-1.0.0-javadoc.jar.asc'
does not exist for 'UpdateCheckerLib-1.0.0-javadoc.jar'.
Missing Signature:
'/com/github/danielemaddaluno/androidupdatechecker/UpdateCheckerLib/1.0.0/UpdateCheckerLib-1.0.0.aar.asc'
does not exist for 'UpdateCheckerLib-1.0.0.aar'.
Missing Signature:
'/com/github/danielemaddaluno/androidupdatechecker/UpdateCheckerLib/1.0.0/UpdateCheckerLib-1.0.0-sources.jar.asc'
does not exist for 'UpdateCheckerLib-1.0.0-sources.jar'.
Missing Signature:
'/com/github/danielemaddaluno/androidupdatechecker/UpdateCheckerLib/1.0.0/UpdateCheckerLib-1.0.0.pom.asc'
does not exist for 'UpdateCheckerLib-1.0.0.pom'.
Invalid POM: /com/github/danielemaddaluno/androidupdatechecker/UpdateCheckerLib/1.0.0/UpdateCheckerLib-1.0.0.pom:
Project description missing Dropping existing partial staging repository.