Intereting Posts
Кнопка Button = findViewById (R.id.button) всегда разрешает null в Android Studio ОШИБКА: Android Source Generator: Файл AndroidManifest.xml не найден Некоторые сторонние виджеты перестают обновляться после обновления приложения. Блокировка приложения Android телефона в режиме Портрет Что мне делать: для этого требуется андроид.permission.INTERACT_ACROSS_USERS_FULL Ссылка AppInvites "Install" не открывает приложение Linux rt-patch для андроида? ОШИБКА: 32-разрядные бинарные файлы для эмулятора Android от Linux деактивированы Android: Возможно ли иметь два поверхностных изображения друг на друга? Изменение размера изображения до полной ширины и фиксированной высоты с помощью Picasso В eclipse не удалось ссылаться на проект библиотеки Android в другом проекте Android Как установить рингтон с RingtoneManager.ACTION_RINGTONE_PICKER? Как SHA1 хэш строку в Android? Работа с unicode , как избавиться? Android / Java Не удалось открыть хранилище ключей в AndroidStudio – «Найдены избыточные байты длины»

Gradle публикует для конкретного репо Artifactory

Я пытаюсь настроить процесс сборки артефактов (APK / aar files) с помощью градиента, аналогичного тому, как я привык с 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 артефакт развертывается в другом месте (как если бы он не соблюдал repoKey в файле gradle)

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 

Solutions Collecting From Web of "Gradle публикует для конкретного репо Artifactory"

Использование плагина android-maven :

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:0.9.2' classpath 'com.github.dcendents:android-maven-plugin:1.0' classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.2.0' } } apply plugin: 'android-library' apply plugin: 'com.jfrog.artifactory-upload' apply plugin: 'android-maven' configurations { published } task sourceJar(type: Jar) { from android.sourceSets.main.java classifier "sources" } artifactoryPublish { dependsOn sourceJar } artifacts { published sourceJar } artifactory { contextUrl = "${artifactory_contextUrl}" publish { repository { repoKey = "libs-releases-local" username = "${artifactory_user}" password = "${artifactory_password}" } defaults { publishConfigs('archives', 'published') publishPom = true //Publish generated POM files to Artifactory (true by default) publishIvy = false //Publish generated Ivy descriptor files to Artifactory (true by default) } } } 

Обычно я делаю это с помощью mavenDeployer-plugin. Не знаю, соответствует ли это вашему делу, но я просто оставлю его здесь.

 apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository(url: 'http://arandom.nexus.com:8081/nexus/content/repositories/releases') { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD); } snapshotRepository(url: 'http://arandom.nexus.com:8081/nexus/content/repositories/snapshots') { authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD); } pom.groupId = "groupId" pom.artifactId = "artifactId" pom.version = "${versionMajor}.${versionMinor}.${versionPatch}" } } } 

Некоторые дополнительные чтения для местных РЕПО здесь