将 aar 文件发布到 Maven Central Gradle 不工作
Publish an aar file to Maven Central with Gradle not working
将 aar 文件发布到 Maven Central Gradle 仍然无法正常工作:
好吧,让我们重复我所遵循的所有步骤来设法"Publish an aar file to Maven Central with Gradle"(我主要遵循这个guide),只是为了确定...
1) 我使用 "Android Studio" 并且我有这个简单的 android 库,我希望在 maven 上可用:https://github.com/danielemaddaluno/Android-Update-Checker
2) 在 UpdateCheckerLib 文件夹中我有上面提到的 lib 代码。并在该文件夹 apply plugin: 'com.android.library'
的 build.gradle 中应用,我在模块目录的 build/outputs/aar/ 目录中得到一个 .aar 作为输出
3) 我的第一步是找到一个批准的存储库。我决定使用Sonatype OSS Repository。在这里我注册了一个项目打开一个新的问题(创建 --> 创建问题 --> 社区支持 - 开源项目存储库托管 --> 新项目) with groupid com.github.danielemaddaluno
4) 所以我在项目的根目录中添加了一个文件:maven_push.gradle
:
apply plugin: 'maven'
apply plugin: 'signing'
def sonatypeRepositoryUrl
if (isReleaseBuild()) {
println 'RELEASE BUILD'
sonatypeRepositoryUrl = hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
println 'DEBUG BUILD'
sonatypeRepositoryUrl = hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
: "https://oss.sonatype.org/content/repositories/snapshots/"
}
def getRepositoryUsername() {
return hasProperty('nexusUsername') ? nexusUsername : ""
}
def getRepositoryPassword() {
return hasProperty('nexusPassword') ? nexusPassword : ""
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
pom.artifactId = POM_ARTIFACT_ID
repository(url: sonatypeRepositoryUrl) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
pom.project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
}
}
}
}
}
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.sourceFiles
}
task androidJavadocsJar(type: Jar) {
classifier = 'javadoc'
//basename = artifact_id
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
//basename = artifact_id
from android.sourceSets.main.java.sourceFiles
}
artifacts {
//archives packageReleaseJar
archives androidSourcesJar
archives androidJavadocsJar
}
}
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:git@github.com:danielemaddaluno/Android-Update-Checker.git
POM_SCM_DEV_CONNECTION=scm:git@github.com: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 文件夹中我:
添加了一个gradle.properties:
POM_NAME=Android Update Checker
POM_ARTIFACT_ID=androidupdatechecker
POM_PACKAGING=aar
修改了 build.gradle 在文件底部添加以下行:apply from: '../maven_push.gradle'
9) 为了在我的作品上签名,我做了:
gpg --gen-key
gpg --list-keys --> get my PubKeyId...
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys PubKeyId
10) 我在 ~/.gradle/gradle.properties
路径中添加了一个文件,其内容如下(以获取我使用的密钥 gpg --list-secret-keys
):
signing.keyId=xxxxxxx
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=~/.gnupg/secring.gpg
nexusUsername=YourSonatypeJiraUsername
nexusPassword=YourSonatypeJiraPassword
11) sudo apt-get install gradle
在终端中,因为 "Andoid Studio" 终端无法识别 gradle...
12) 最后gradle uploadArchives
13) 我得到这个错误:
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'.
可能只是由于 gradle/gradle 插件问题,但我想分享所有过程,以防对其他人有所帮助!
提前致谢!
将 aar 文件发布到 jCenter Gradle 仍然无法正常工作:
非常感谢 JBaruch 和他的回答!所以我试图发布到 jCenter 而不是 Maven Central,因为事实上 jcenter() 是 mavenCentral() 的超集。
好的,让我们从我的 github 图书馆 Android-Update-Checker 重新开始。
我试图遵循他的一些提示,但我仍然卡住了......
我还将为 jcenter 发布编写我的步骤(希望对某人有用)。也许我遗漏了什么...
1) 使用 username
注册到 Bintray:danielemaddaluno
2) 启用上传内容的自动签名:
来自 Bintray profile url --> GPG 签名 --> 复制粘贴你的 public/private keys
。您可以在文件 public_key_sender.asc/private_key_sender.asc
中分别找到这两个
如果执行以下代码(gpg
中的-a
或--armor
选项用于生成ASCII-armored密钥对):
gpg --gen-key
gpg -a --export daniele.maddaluno@gmail.com > public_key_sender.asc
gpg -a --export-secret-key daniele.maddaluno@gmail.com > private_key_sender.asc
2.1) 在同一个 web page 中,您可以从以下位置配置自动签名:存储库 --> Maven --> 检查 "GPG Sign uploaded files automatically" --> 更新
3) 在同一个web page中可以找到你的Bintray API Key
(复制以备后用)
4) 在同一个 web page 中你可以配置你的 Sonatype OSS User
(在问题的前一部分我已经创建了一个用户和一个问题)
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 'daniele.maddaluno@gmail.com'
}
}
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>
8)在我的PATH中添加了"Android Studio"实际使用的默认gradle 2.2.1,例如:
PATH=$PATH:/etc/android-studio/gradle/gradle-2.2.1/bin
9) 打开"Android Studio"终端并执行:
gradle bintrayUpload
10) From Bintray --> My Recent Packages --> androidupdatechecker (这是在上一点9执行后才出现的) --> 添加到Jcenter --> 勾选--> 组 ID = "com.github.danielemaddaluno.androidupdatechecker".
11) 最后我尝试遵循:Bintray --> 我最近的包 --> androidupdatechecker --> Maven Central --> 同步但是我在 "Sync Status"页面右侧栏:
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.
您可以改为将 aar 发布到 JCenter。
我需要将我的 aar 文件发布到 JCenter,然后将其与 Maven Central 同步的每一步都可以在这里阅读:
https://github.com/danielemaddaluno/gradle-jcenter-publish
将 aar 文件发布到 Maven Central Gradle 仍然无法正常工作:
好吧,让我们重复我所遵循的所有步骤来设法"Publish an aar file to Maven Central with Gradle"(我主要遵循这个guide),只是为了确定...
1) 我使用 "Android Studio" 并且我有这个简单的 android 库,我希望在 maven 上可用:https://github.com/danielemaddaluno/Android-Update-Checker
2) 在 UpdateCheckerLib 文件夹中我有上面提到的 lib 代码。并在该文件夹 apply plugin: 'com.android.library'
的 build.gradle 中应用,我在模块目录的 build/outputs/aar/ 目录中得到一个 .aar 作为输出
3) 我的第一步是找到一个批准的存储库。我决定使用Sonatype OSS Repository。在这里我注册了一个项目打开一个新的问题(创建 --> 创建问题 --> 社区支持 - 开源项目存储库托管 --> 新项目) with groupid com.github.danielemaddaluno
4) 所以我在项目的根目录中添加了一个文件:maven_push.gradle
:
apply plugin: 'maven'
apply plugin: 'signing'
def sonatypeRepositoryUrl
if (isReleaseBuild()) {
println 'RELEASE BUILD'
sonatypeRepositoryUrl = hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL
: "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
println 'DEBUG BUILD'
sonatypeRepositoryUrl = hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL
: "https://oss.sonatype.org/content/repositories/snapshots/"
}
def getRepositoryUsername() {
return hasProperty('nexusUsername') ? nexusUsername : ""
}
def getRepositoryPassword() {
return hasProperty('nexusPassword') ? nexusPassword : ""
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
pom.artifactId = POM_ARTIFACT_ID
repository(url: sonatypeRepositoryUrl) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
pom.project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
}
}
}
}
}
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.sourceFiles
}
task androidJavadocsJar(type: Jar) {
classifier = 'javadoc'
//basename = artifact_id
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
//basename = artifact_id
from android.sourceSets.main.java.sourceFiles
}
artifacts {
//archives packageReleaseJar
archives androidSourcesJar
archives androidJavadocsJar
}
}
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:git@github.com:danielemaddaluno/Android-Update-Checker.git
POM_SCM_DEV_CONNECTION=scm:git@github.com: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 文件夹中我:
添加了一个gradle.properties:
POM_NAME=Android Update Checker POM_ARTIFACT_ID=androidupdatechecker POM_PACKAGING=aar
修改了 build.gradle 在文件底部添加以下行:
apply from: '../maven_push.gradle'
9) 为了在我的作品上签名,我做了:
gpg --gen-key
gpg --list-keys --> get my PubKeyId...
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys PubKeyId
10) 我在 ~/.gradle/gradle.properties
路径中添加了一个文件,其内容如下(以获取我使用的密钥 gpg --list-secret-keys
):
signing.keyId=xxxxxxx
signing.password=YourPublicKeyPassword
signing.secretKeyRingFile=~/.gnupg/secring.gpg
nexusUsername=YourSonatypeJiraUsername
nexusPassword=YourSonatypeJiraPassword
11) sudo apt-get install gradle
在终端中,因为 "Andoid Studio" 终端无法识别 gradle...
12) 最后gradle uploadArchives
13) 我得到这个错误:
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'.
可能只是由于 gradle/gradle 插件问题,但我想分享所有过程,以防对其他人有所帮助!
提前致谢!
将 aar 文件发布到 jCenter Gradle 仍然无法正常工作:
非常感谢 JBaruch 和他的回答!所以我试图发布到 jCenter 而不是 Maven Central,因为事实上 jcenter() 是 mavenCentral() 的超集。 好的,让我们从我的 github 图书馆 Android-Update-Checker 重新开始。 我试图遵循他的一些提示,但我仍然卡住了...... 我还将为 jcenter 发布编写我的步骤(希望对某人有用)。也许我遗漏了什么...
1) 使用 username
注册到 Bintray:danielemaddaluno
2) 启用上传内容的自动签名:
来自 Bintray profile url --> GPG 签名 --> 复制粘贴你的 public/private keys
。您可以在文件 public_key_sender.asc/private_key_sender.asc
中分别找到这两个
如果执行以下代码(gpg
中的-a
或--armor
选项用于生成ASCII-armored密钥对):
gpg --gen-key
gpg -a --export daniele.maddaluno@gmail.com > public_key_sender.asc
gpg -a --export-secret-key daniele.maddaluno@gmail.com > private_key_sender.asc
2.1) 在同一个 web page 中,您可以从以下位置配置自动签名:存储库 --> Maven --> 检查 "GPG Sign uploaded files automatically" --> 更新
3) 在同一个web page中可以找到你的Bintray API Key
(复制以备后用)
4) 在同一个 web page 中你可以配置你的 Sonatype OSS User
(在问题的前一部分我已经创建了一个用户和一个问题)
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 'daniele.maddaluno@gmail.com'
}
}
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>
8)在我的PATH中添加了"Android Studio"实际使用的默认gradle 2.2.1,例如:
PATH=$PATH:/etc/android-studio/gradle/gradle-2.2.1/bin
9) 打开"Android Studio"终端并执行:
gradle bintrayUpload
10) From Bintray --> My Recent Packages --> androidupdatechecker (这是在上一点9执行后才出现的) --> 添加到Jcenter --> 勾选--> 组 ID = "com.github.danielemaddaluno.androidupdatechecker".
11) 最后我尝试遵循:Bintray --> 我最近的包 --> androidupdatechecker --> Maven Central --> 同步但是我在 "Sync Status"页面右侧栏:
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.
您可以改为将 aar 发布到 JCenter。
我需要将我的 aar 文件发布到 JCenter,然后将其与 Maven Central 同步的每一步都可以在这里阅读: https://github.com/danielemaddaluno/gradle-jcenter-publish