我有一个基于Java的GitHub项目,fitnessjiffy-spring(我目前专注于"bootstrap"分支).它取决于从另一个GitHib项目(fitnessjiff- etl)构建的库.我正在尝试配置由Travis CI构建的这两个.
不幸的是,Travis在处理基于Maven的Java项目时并不像Jenkins或Hudson那样复杂.Jenkins可以轻松处理项目之间的依赖关系,但Travis似乎并不存在相同的概念.如果一个项目依赖于另一个项目,那么其他项目必须先前已经构建...并且其工件上传到某个Maven仓库,第一个项目可以在以后下载.
我的"fitnessjiffy-etl"图书馆正在建设和部署.我正在使用Bintray进行Maven存储库托管,您可以通过以下方式在纯HTTP上清楚地看到我的工件:
http://dl.bintray.com/steve-perkins/maven/
在我的"fitnessjiffy-spring"项目中,我将直接添加此Maven repo位置pom.xml,以便Travis能够找到该工件依赖项. 这是我撰写本文时POM的状态.请注意<repositories>文件底部的元素.
当我在本地构建这个项目时,它工作正常.我可以看到它从" http://dl.bintray.com/ ..." 下载Maven工件.但是,当我尝试在Travis CI上构建时,它每次都会失败.我可以在控制台日志中看到Travis仍在尝试从Maven Central下载工件而不是我指定的repo.
这对其他人有意义吗?为什么Maven在本地构建时在POM文件中使用自定义存储库位置,但在Travis CI构建上运行时忽略此配置?
我novoda/bintray-release在第一次使用时将我的库发布到jCenter,作为v1.0.0 .其实我想把它更新为v1.0.1,我该怎么做呢?
[已编辑]我添加了另一个库的发行说明图像,如下所示.
我有一个gradle任务,使用curl将一些东西部署到bintray.
为此,它需要我的bintray api密钥.我不想把它放在我的构建脚本(或属性文件)中,因为所有这些东西都是在github上的明显托管.
相反,我让任务使用了一个名为的属性bintrayApikey,该属性在调用gradle时提供.当我在本地运行时使用
gradlew pushToBintray -DbintrayApikey=<my api key>
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作.
所以下一步是让我的Jenkins在cloudbees上完成这项工作.由于似乎没有一个特殊的地方来放置系统属性我只是将它们添加到任务中,但这似乎不起作用.在控制台中,我可以看到它正在访问bintray,但随后完成:
This resource requires authentication
Run Code Online (Sandbox Code Playgroud)
那么如何在我的jenkins作业配置中提供属性值?
我正在尝试使用Android Studio和bintray创建一个maven库,但我无法让它工作.当我尝试使用gradle bintrayUploadI 上传lib时,总是得到以下错误:
Could not upload to 'https://api.bintray.com/content/company/maven/company-simplename-lib/simplename/company-simplename-lib/lib/0.0.1/lib-0.0.1.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'company-simplename-lib/lib/0.0.1/lib-0.0.1.pom']
Run Code Online (Sandbox Code Playgroud)
当我尝试在他们的github仓库中关注bintray的例子时会发生这种情况.
我已将我的库build.gradle(不是root)更改为以下内容:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
}
plugins {
id "com.jfrog.bintray" version "1.4"
}
version = '0.0.1'
allprojects {
repositories {
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
} …Run Code Online (Sandbox Code Playgroud) 我很抱歉,如果我太愚蠢,但我无法使其工作......我在AS中有一个我想要上传到JCenter的Android模块项目 - 使用JFrog的 gradle bintray插件.我按照本教程在bintray上创建了存储库,最后我得到了模块的以下build.gradle:
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty('bintray.user')
key = properties.getProperty('bintray.apikey')
configurations = ['published', 'archives']
dryRun = false
publish = true
pkg {
repo = 'maven'
name = 'custom-searchable'
desc = 'This repository contains a library that aims to provide a custom searchable interface for android applications'
websiteUrl = 'https://github.com/...'
issueTrackerUrl = 'https://github.com/.../issues'
vcsUrl = 'https://github.com/....git'
licenses = ['The Apache …Run Code Online (Sandbox Code Playgroud) 我正在研究android中的一个库项目.我想将我的库上传到JCenter.我创建了bintray帐户等,并按照此处提到的所有步骤进行操作.
我在应用程序模块和库模块中进行了以下更改.
应用程序模块build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.app.testapp"
minSdkVersion 8
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.0'
compile project(':testlib')
}
Run Code Online (Sandbox Code Playgroud)
库模块build.gradle
apply plugin: 'com.android.library'
ext {
bintrayRepo = 'maven'
bintrayName = 'test-sdk'
publishedGroupId = 'in.test.sdk'
libraryName = 'testlib'
artifact = 'test-sdk'
libraryDescription = 'A …Run Code Online (Sandbox Code Playgroud) 我已经阅读了有关如何发布android工作室库的文章.每篇文章都说通过Bintray来做.如何使用Bintray免费发布Android库?它要求我注册一个组织并在一个月的免费试用后付款.
在Gradle中,我只需添加:
repositories {
jcenter()
}
Run Code Online (Sandbox Code Playgroud)
在maven pom.xml中执行相同操作的最简单和最正确的方法是什么?在哪里可以获得jcenter存储库的正确URL.
TL; DR:Bintray可以使用作为子密钥的签名密钥签名文件或包,还是需要主签名密钥(也是?)?
在我的私钥环中,我(最初)有一个主密钥([SC])及其标准加密子密钥([E]).为此我添加了一个签名子键([S]),我希望用它来签署软件包(上传到Bintray).后来我从密钥环中删除了主密钥以保证安全,只保留了签名和加密所需的子密钥.
我有两个ASCII装甲的私钥导出:
--export-secret-keys并包含主密钥和两个子密钥生成的 ;--export-secret-subkeys并仅包含子键生成的,包括添加的签名子键.试图签署上传到Bintray的包裹:
.asc签名时,我可以看到Bintray使用主密钥进行签名.通过在这里提供私钥,我的意思是通过API调用的private_key参数api.bintray.com/gpg,或者在我的Bintray帐户中预先设置为私钥.
我是否希望能够使用签名子键登录Bintray?当然,我可以gpg使用签名子键在我的本地shell中创建一个装甲/分离的asc签名,而不使用主密钥在我的密钥环中.但我可以在Bintray这样做吗?
我正在使用本教程将我的android lib上传到bintray.com
我按照以下步骤上传lib:
- gpg --gen-key
- gpg --list-keys
- gpg --keyserver hkp://pool.sks-keyservers.net --send-keys PUBLIC_KEY_ID
- gpg -a --export yourmail@email.com> public_key_sender.asc
- gpg -a --export-secret-key yourmail@email.com> private_key_sender.asc
我已将PUBLIC_KEY_ID替换为我的密钥ID,对于电子邮件也是如此.
我不知道为什么我没有收到电子邮件?