我需要上载从多模块项目生成的多个aar。我的项目结构如下。
Project Root
|--Main app
|--Sub-Module1
|--Sub-Module2
|--Sub-Module3
每个子模块都会生成aar文件,我需要将所有aar的发行版上传到Nexus,但是我不希望将apk上传到Nexus。我正在传递jenkins的所有关系URL和证书。
这是我的根目录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();
}
}
}
publish-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
这样可以将我所有的快照aar成功上传到Nexus。gradle release
-它成功完成了发布,但未将任何内容上传到Nexus。但是构建成功。你能帮我我所缺少的吗?
最佳答案
您不能在Android项目中使用普通的maven
插件。您必须使用以下一个:https://github.com/dcendents/android-maven-gradle-plugin
同样,您的uploadAllArchives任务是多余的,只需从根项目中运行gradle uploadArchives
。