我正在尝试将一个安卓库发布到本地的JFrog Artifactory。目前,我有以下内容:
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'
apply plugin: 'com.android.library'
publishing {
publications {
aar(MavenPublication) {
groupId libraryGroupId
version libraryVersion
artifactId libraryArtifactId
artifact("$buildDir/outputs/aar/app-beta-debug.aar")
}
}
}
artifactory {
contextUrl = 'http://localhost:8081/artifactory'
publish {
repository {
repoKey = 'libs-release-local'
username = artifactory_username
password = artifactory_password
}
defaults {
publications('aar')
publishArtifacts = true
properties = ['qa.level': 'basic', 'q.os': 'android', 'dev.team': 'core']
publishPom = true
}
}
}为了简洁起见,我跳过了一些部分,比如android和依赖部分。build.gradle有多个编译依赖项。
gradle artifactoryPublish将工件发布到Artifactory,但生成的pom没有依赖项。我找到了这个答案:https://stackoverflow.com/a/30523571/2829308
根据这个答案,pom.withXml起作用了(尽管我不知道如何排除依赖项)。但这看起来有点不对劲。我觉得应该有更好的方法可用。我尝试使用uploadArchives方法,如下所示
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://localhost:8081/artifactory/libs-release-local")
pom.version = libraryVersion
pom.artifactId = libraryArtifactId
pom.groupId = libraryGroupId
}
}
}它显示任务成功,但工件没有在Artifactory中发布。我是不是漏掉了什么明显的东西?我该如何解决这个问题?
发布于 2016-06-08 05:46:34
Pom文件不应该包含传递依赖,只能包含直接依赖。Maven解析pom文件以查找直接依赖项,下载它们并以递归方式从那里继续。
您应该在pom文件中看到的唯一依赖项是gradle脚本的dependences块中声明的依赖项。
https://stackoverflow.com/questions/37460638
复制相似问题