【发布时间】:2015-12-12 01:17:24
【问题描述】:
我正在尝试使用 gradle 设置工件(APK/aar 文件)构建过程,类似于我习惯使用 maven 的方式。
mvn release:prepare (Adjusts version, checks into SVN, creates the tag)
mvn release:perform -Dgoals=deploy (Pushes the artifact to http://artifactory.XXX.local/artifactory/libs-releases-local/)
我希望能够运行 gradle 命令并获得类似的结果。我正在使用https://github.com/researchgate/gradle-release 插件进行发布管理(效果很好,所以我很擅长发布)。但是当我运行命令 gradlew artifactoryPublish 时,工件被部署在其他位置(好像它不尊重 gradle 文件中的 repoKey)
D:\my-lib-android-0.0.2>gradlew artifactoryPublish ... ... [buildinfo] 不为此构建使用 buildInfo 属性文件。 :artifactoryPublish 将构建描述符部署到: http://artifactory.XXX.local/artifactory/api/build 构建成功 部署。在 Artifactory 中浏览它 http://artifactory.XXX.local/artifactory/webapp/builds/my-lib-android-0.0.2/1449880830949>
构建成功
总时间:9.692 秒
所以我的问题是如何修复我的设置,以便将工件推送到类似于此的 URL:
http://artifactory.XXX.local/artifactory/libs-releases-local/com/example/my-lib-android/0.0.2/my-lib-android-0.0.2.aar
build.gradle 文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '3.1.2')
classpath 'net.researchgate:gradle-release:2.3.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
plugins {
id 'net.researchgate.release' version '2.3.4'
}
apply plugin: "com.jfrog.artifactory"
apply plugin: 'maven-publish'
apply plugin: 'net.researchgate.release'
allprojects {
repositories {
jcenter()
maven {
url 'http://artifactory.XXX.local/artifactory/libs-releases-local'
}
}
}
artifactory {
contextUrl = "${artifactory_contextUrl}"
//The base Artifactory URL if not overridden by the publisher/resolver
publish {
repository {
repoKey = "libs-releases-local"
username = "${artifactory_user}"
password = "${artifactory_password}"
maven = true
}
}
}
release {
revertOnFail = false
}
task build{
}
gradle.properties 文件:
version=my-lib-android-0.0.3-SNAPSHOT
artifactory_user=myUserName
artifactory_password=myPasssword
artifactory_contextUrl=http://artifactory.XXX.local/artifactory
【问题讨论】:
-
基于用户@RaGe 的评论(现已删除),我添加了插件
id "com.jfrog.artifactory" version "3.1.0"以及artifactoryPublish {.. .. }块。但这没有帮助。 -
你使用的是
maven-publish,你应该使用artifactory-publish而不是artifactory,这里的答案是:stackoverflow.com/questions/22352475/… -
您是否为您的 maven-publish 插件定义了任何
publishing{}? -
谢谢!我明天试试。
-
多读一些,
maven-publish适用于传统的 java 项目,对于 android 项目,您可能想要使用android-maven
标签: android maven android-studio gradle android-gradle-plugin