我有一个build.gradle文件来构建和上传私有Maven资源库一个Android库(.aar)脚本完全正常工作,但问题是,它在maven repo上传了我的两个buildType(调试和发布版本)我只想上传第一个版本。
这是我的剧本:
afterEvaluate { project ->
// Generate Jar of the Javadoc
task androidJavadocsJar(type: Jar, dependsOn: generateReleaseJavadoc) {
classifier = 'javadoc'
from generateReleaseJavadoc.destinationDir
}
// Include Javadoc Jar file in the Maven repository
artifacts {
archives androidJavadocsJar
}
// Task to upload SDK in Maven private repository
uploadArchives {
repositories {
mavenDeployer {
repository(url: "***") {
authentication(userName: '***', password: '***')
}
snapshotRepository(url: "***") {
authentication(userName: '***', password: '***')
}
pom.project {
artifactId '***'
name '***'
packaging 'aar'
}
}
}
}
}
我知道通过写这个defaultPublishConfig"发布"在android {}部分,但是当我这样做时,我无法在调试版本中使用我的库进行调试。我没有找到任何解决方法来停止上传调试包而不是评论和取消注释取决于我想做什么...
答案 0 :(得分:3)
this可能有助于解决您的问题。基本上它默认使用发布版本。但是,您似乎可以通过;
覆盖行为android {
defaultPublishConfig "flavor1Debug"
}
答案 1 :(得分:2)
我按照以下方式执行此操作,并且只在打包的AAR中获取发布工件。
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: 'http://myserver/artifactory/libs-release-local') {
authentication(userName: artifactoryUsername, password: artifactoryPassword)
}
snapshotRepository(url: 'http://myserver/artifactory/libs-snapshot-local') {
authentication(userName: artifactoryUsername, password: artifactoryPassword)
}
pom.project {
name 'somelibrary'
description 'some library'
scm {
developerConnection 'repo location'
}
}
}
}
}
相反,我实际上是在寻找一种方法来发布用于调试和发布的单独工件,但是找不到它:)