从 Gradle 中的 uploadArchives 任务中移除 BuildType 调试
Remove BuildType debug from uploadArchives task in Gradle
我有一个 build.gradle 文件要构建并上传到私有 Maven 存储库 Android 库 (.aar) 脚本工作正常,但问题是,它将我的两个 buildType 上传到maven repo(调试和发布版本),我只想上传发布版本。
这是我的脚本:
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'
}
}
}
}
}
我知道可以通过在 android {} 部分编写此 defaultPublishConfig "release" 来实现,但是当我这样做时,我无法在调试版本中使用我的库进行调试。除了根据我想做什么来评论和取消评论之外,我没有找到任何停止上传调试包的解决方法...
我按照以下方式进行,我只在打包的 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'
}
}
}
}
}
相反,我实际上是在寻找一种方法来发布用于调试和发布的单独工件,但找不到嘿:)
this 可能有助于解决您的问题。基本上它默认使用发布版本。但是,您似乎可以通过以下方式覆盖该行为;
android {
defaultPublishConfig "flavor1Debug"
}
我有一个 build.gradle 文件要构建并上传到私有 Maven 存储库 Android 库 (.aar) 脚本工作正常,但问题是,它将我的两个 buildType 上传到maven repo(调试和发布版本),我只想上传发布版本。
这是我的脚本:
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'
}
}
}
}
}
我知道可以通过在 android {} 部分编写此 defaultPublishConfig "release" 来实现,但是当我这样做时,我无法在调试版本中使用我的库进行调试。除了根据我想做什么来评论和取消评论之外,我没有找到任何停止上传调试包的解决方法...
我按照以下方式进行,我只在打包的 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'
}
}
}
}
}
相反,我实际上是在寻找一种方法来发布用于调试和发布的单独工件,但找不到嘿:)
this 可能有助于解决您的问题。基本上它默认使用发布版本。但是,您似乎可以通过以下方式覆盖该行为;
android {
defaultPublishConfig "flavor1Debug"
}