- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 android 开发的新手,我正在尝试通过 BinTray 将基本测试库(我正在为学习目的而构建)部署到 JCenter 和 MavenCentral。我已通过 BinTray 成功部署到 JCenter,但无法继续成功部署到 MavenCentral。
下面是我遇到的 MavenCentral REST API 错误:
HTTP/1.1 400 Bad Request [messages:[Invalid POM: /pro/johnfoley/androidTesting/testlibrary/1.0.5/testlibrary-1.0.5.pom: Project name missing, Project description missing, Project URL missing, License information missing, SCM URL missing, Developer information missing, Dropping existing partial staging repository.], status:Validation Failed]
11:45:57 AM: External task execution finished 'bintrayUpload'.
这是我的build.gradle:
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
description = 'A test library'
group = 'pro.johnfoley.androidTesting'
version = '1.0.5'
buildscript {
repositories {
jcenter()
mavenCentral()
}
apply plugin: 'maven'
apply plugin: 'maven-publish'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
// Generate source JAR
task generateSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier 'sources'
}
// Generate JavaDocs and JavaDocs JAR
task generateJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath()
.join(File.pathSeparator))
}
task generateJavadocsJar(type: Jar) {
from generateJavadocs.destinationDir
classifier 'javadoc'
}
generateJavadocsJar.dependsOn generateJavadocs
artifacts
{
archives generateSourcesJar
archives generateJavadocsJar
}
def bintrayUser = 'BT_USER'
def bintrayApiKey = 'BT_KEY'
def bintrayGPGPassword = 'BT_PW'
def mavenCentralToken = 'MC_TOKEN'
def mavenCentralPassword = 'MC_PW'
// BinTray config
bintray
{
user = bintrayUser
key = bintrayApiKey
pkg
{
repo = 'maven'
name = 'pro.johnfoley.androidTesting.testlibrary'
desc = ''
licenses = ['Apache-2.0']
vcsUrl = 'https://github.com/johnlfoleyiii/androidTesting.git'
issueTrackerUrl = 'https://github.com/johnlfoleyiii/androidTesting/issues'
websiteUrl = 'https://github.com/johnlfoleyiii/androidTesting'
labels = []
publicDownloadNumbers = true
version {
name = '1.0.5-testlibrary'
desc = 'My test library'
released = new Date()
vcsTag = 'v1.0'
gpg {
sign = true
passphrase = bintrayGPGPassword
}
mavenCentralSync {
sync = true //Optional (true by default). Determines whether to sync the version to Maven Central.
user = mavenCentralToken
password = mavenCentralPassword
close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually.
}
}
}
configurations = ['archives']
}
这是从 build.gradle 生成的 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>pro.johnfoley.androidTesting</groupId>
<artifactId>testlibrary</artifactId>
<version>1.0.5</version>
<packaging>aar</packaging>
<dependencies>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>appcompat-v7</artifactId>
<version>23.4.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
如何配置 build.gradle 以通过 BinTray 成功部署到 MavenCentral?
最佳答案
我使用 Bintray 将我的一些库上传到 Maven Central。我使用 Novoda 的
bintray-release
库创建一个 pom 并将该库上传到 Bintray。
您可以在此处按照 bintray-release
插件的项目设置进行操作:RxAnimationBinding .
在你为 bintray-upload
做了一个类比项目设置后,你可以将你的库上传到 Bintray(一定要将 dryRun
设置为 false
对于真正的上传):
./gradlew clean build bintrayUpload
上传的 repo 必须使用您的 GPG key 签名。为此,您必须:
Bintray
配置文件设置中设置您的 GPG 公钥:之后你可以将你的仓库同步到 Maven
关于android - 通过 BinTray 部署 AAR 到 MavenCentral,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37328415/
我们向客户发送了一个 android sdk (aar) 文件。我们的代码在内部使用两个第 3 方 aar,我们在我们的 repo 和 gradle 在运行时引用它。我的问题是如何将这些依赖项发送给客
我正在努力构建可用于其他应用程序的 SDK。 我的项目结构如下: ProjectFolder | +--AndroidLibs | | | +--UI (andro
如果我有作为 SDK 的项目 A,并且它作为 AAR 导出到项目 B 中,项目 B 将模块作为 AAR 导入,我该如何链接这两个模块,所以对项目 B 中的 AAR 所做的更改不会必须在原始项目-A中复
我是一名插件开发人员,我的插件依赖于两个 aar 库。当我导出为 aar 存档时,我的依赖库不是它的一部分。我的项目结构如下所述 App lib1 --aartool lib2 lib3
我有一个以 aar 格式分发的 android 库。它重300kb。我想创建另一个库,也是 aar 格式,其中依赖项中的第一个库。但是结果库权重是30kb,显然不包括第一个库。 我尝试使用 flatD
如何访问 AAR 库中的 Activity,它不是直接包含在项目中而是嵌入到另一个 AAR 库中? 我得到一个错误 java.lang.NoClassDefFoundError: Failed res
你能帮我理解构建 android 库并在用户应用程序中使用它的一般概念吗。 那么,有以下情况: 在android studio中有以下模块: 核心 数据 绘图 还有一个模块 应用 依赖于上述模块。 a
关于 Gradle 中 AAR 文件的传递依赖关系存在一些问题: Android Studio 0.2.3 cannot resolve transitive aar dependencies And
我看到了各种开发人员发布的问题(Android Studio combine 2 .aar into one 和其他人),但我还没有看到明确的答复使我能够创建一个包含 1 个或多个 AAR 或 JAR
我正在使用Xamarin开发一个APP,需要使用Android Studio(AS)开发的其他aar。 在 AS 中,我创建了一个名为“javaLib”的 Java 库模块。构建后,我得到了javaL
无法发布配置“文件”,无法发布 Artifact danlu-bluetooth.aar (/Users/xxx/work/xxx/workplace/androidcode/libraray/xxx
我正在使用 Android Studio 1.5。我有一个图书馆项目,core-speech-service.aar。此 AAR 文件已正确生成(所有类都构建并打包在 AAR 文件中的 classes
我写了一些库,它有一部分 UI。此外,此库使用其他库。我想提供版本 .aar 以在任何应用程序中使用此 UI 部分。 我的图书馆有下一个依赖: compile 'com.android.sup
所以,事情是这样的,我有一个 .aar 文件,当我将它添加为依赖项时,如下所示: 编译('com.foo:bar:1.0.0@aar') 它生成以下文件: build > intermediates
我正在使用另一个 aar 和 jar 文件依赖项创建 AAR 文件。我已成功创建 .aar 发布文件。 然后,我将新的 AAR 文件导入到示例项目中。该项目运行良好。当访问 aar 和 jar 类时,
我正在创建一个具有“directions-api.aar”(Here-Maps 小部件库)的旧依赖项的 android 应用程序,现在我需要为 Map 的实现添加“HERE-sdk.aar”。 这导致
我通过将我的应用程序转换为库来为应用程序贴上白色标签,并且我有一个配置文件被传递到库以更改颜色、添加新的加载动画、更改一些文本等。库拥有所有这些上面列出的依赖项。当我将库导入新应用程序时,由于新应用程
我有一个顶级 android 库模块(包含 res 文件夹)依赖于其他库子模块(无 res)。我想构建一个顶层模块的 fat aar,它应该包括子模块的 jar 以及我在 build.gradle 中
我在 Intranet maven repo 中有一个 utility.aar。它使用了一些众所周知的 jar ,例如 gson。我已将它们定义为实用程序模块的 build.gradle 中的编译依赖
我正在按照 camera_deep_ar 上的插件页面中给出的文档进行操作 我已将 minimumSdkVersion 设置为 19 在 AndroidManifest.xml 中正确赋予权限 正确设
我是一名优秀的程序员,十分优秀!