Загрузить несколько AAR в Nexus, используя релиз jenkins - gradle
Мне нужно загрузить несколько AAR сгенерированных из многомодульного проекта. Моя структура проекта выглядит следующим образом.
Project Root
|--Main app
|--Sub-Module1
|--Sub-Module2
|--Sub-Module3
Каждый субмодуль генерирует aar-файлы, которые мне нужны для загрузки релизной версии всех aars в Nexus. Однако я не хочу, чтобы apks загружались в Nexus. Я передаю все URL-адреса и кредиты от jenkins.
Вот мой рут build.gradle
release {
failOnCommitNeeded = false
failOnPublishNeeded = true
failOnSnapshotDependencies = true
failOnUnversionedFiles = false
failOnUpdateNeeded = true
revertOnFail = true
preCommitText = ''
preTagCommitMessage = '[Gradle Release Plugin] - pre tag commit: '
tagCommitMessage = '[Gradle Release Plugin] - creating tag: '
newVersionCommitMessage = '[Gradle Release Plugin] - new version commit: '
tagTemplate = '$version'
versionPropertyFile = './gradle.properties'
versionProperties = []
buildTasks = ['uploadAllArchives']
scmAdapters = [
net.researchgate.release.GitAdapter
]
git {
requireBranch = ''
}
}
task ("uploadAllArchives") {
doLast{
println 'uploadAllArchives'
subprojects.each { subProject->
if(!subProject.name.contains('app') && !rootProject)
it.uploadArchives.execute();
}
}
}
публиковать-build.gradle
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: (project.hasProperty('repoUrl') ? repoUrl
: sonatypeRepo)) {
authentication(userName: sonatypeUsername, password:
sonatypePassword)
pom.groupId = sonatypeGroupID
pom.artifactId = project.name
pom.version = version
}
}
}
}
Подмодули build.gradle:
apply from: '../publish-build.gradle'
gradle clean build uploadArchives
Это успешно загружает все мои снимки ааров в Nexus.
gradle release
- Он успешно выполнил релиз, но ничего не загрузил в Nexus. Однако сборка прошла успешно.
Не могли бы вы помочь мне, что мне не хватает?
2 ответа
Вы можете получить это, добавив
afterReleaseBuild.dependsOn project.getSubprojects().collect({it.getTasks().getByName("uploadArchives")})
Это будет сделано, если вы хотите загрузить его для всех подпроектов, но если ваш корневой проект также создает артефакт, вы должны заменить getSubprojects() на getAllprojects()
Вы не можете использовать нормальный maven
Плагин с Android-проектов. Вы должны использовать это: https://github.com/dcendents/android-maven-gradle-plugin
Также ваша задача uploadAllArchives является избыточной, просто запустите gradle uploadArchives
из корневого проекта.