Я пытаюсь опубликовать проект с несколькими модулями в Artifexory (oss.jfrog.org). Когда я запускаю ArtifactoryPublish, я получаю ошибку 403, но я знаю, что это не проблема с правами доступа, потому что она работает с одним модулем. Это только не удается опубликовать несколько модулей.
Некоторые модули представляют собой aars, а другие — jar-файлы, и все они содержат исходные коды. Я могу опубликовать их все в Bintray, но не могу опубликовать в Artifactory (для моментальных снимков).
Итак, вопрос в том, как настроить многомодульный проект для публикации моментальных снимков на oss.jfrog.org.
Я понял, что если я изменю его, чтобы опубликовать один модуль, и сделаю имя артефакта таким же, как последняя часть группы, это сработает, но другое имя не сработает (выдает ошибку 403).
Итак, если группа com.example.foo, я могу опубликовать foo.jar (com/example/foo/foo/1.0.0-SNAPSHOT/foo-1.0.0.jar
). Но я не могу опубликовать bar.jar (com/example/foo/bar/1.0.0-SNAPSHOT/bar.jar
).
Этот градиент включен в каждый проект build.gradle
afterEvaluate {
publishing {
publications {
mavenPublication(MavenPublication) {
artifact sourcesJar
if (project.plugins.hasPlugin("com.android.library")) {
artifact("$buildDir/outputs/aar/${project.name}-debug.aar")
} else {
artifact("$buildDir/libs/${project.name}-${version}.jar")
}
groupId "com.example.foo"
artifactId project.name // changing this to "foo" works for a single project
version version
pom {
name.set(project.name)
url.set(POM_URL)
packaging POM_PACKAGING
version version
licenses {
license {
name.set(POM_LICENSE_NAME)
url.set(POM_LICENSE_URL)
}
}
developers {
developer {
name.set(POM_DEVELOPER)
}
}
scm {
url.set(POM_SCM_URL)
connection.set(POM_SCM_CONNECTION)
developerConnection.set(POM_SCM_DEV_CONNECTION)
}
}
}
}
}
bintray {
user = project.findProperty('bintrayUser') ?: System.getenv('BINTRAY_USER')
key = project.findProperty('bintrayApiKey') ?: System.getenv('BINTRAY_API_KEY')
configurations = ['archives']
publish = true
dryRun = true
pkg {
name = project.name
repo = BINTRAY_REPO
userOrg = BINTRAY_ORG
licenses = [POM_LICENSE_NAME]
vcsUrl = POM_SCM_URL
version {
name = project.name
released = new Date()
}
}
}
artifactory {
contextUrl = 'http://oss.jfrog.org'
publish {
repository {
repoKey = 'oss-snapshot-local'
username = project.findProperty('bintrayUser') ?: System.getenv('BINTRAY_USER')
password = project.findProperty('bintrayApiKey') ?: System.getenv('BINTRAY_API_KEY')
}
defaults {
publications('mavenPublication')
publishArtifacts = true
publishPom = true
}
}
resolve {
repoKey = 'jcenter'
}
}
}