[英]Unresolved reference from gradle maven dependency via s3
我嘗試將庫發布到私有S3 maven存儲庫。 上傳由密碼保護,但是為了下載,該庫是公開的。 aar文件上傳沒有問題(以及pom / md5 / sha1),我可以在我的S3桶中看到它,下載它甚至手動添加這個作為依賴項到我的項目。 但是當我像這樣加載這個依賴:
allprojects {
repositories {
google()
jcenter()
maven { url "http://myrepo.com" }
}
//in the project's build.gradle
implementation 'com.mylib:mylib:0.1.1'
......有一個問題。 Gradle同步完成沒有問題,看起來已經下載了aar,但它從未出現在Android Studio內的“外部庫”部分,並且代碼不可用( Unresolved reference: MyLib
)。
當然,我嘗試重建,使緩存無效並將其應用於不同的項目。
任何想法如何使其工作?
這就是maven-publish代碼的外觀。
android.libraryVariants.all { variant ->
if (variant.buildType.name == "release" && variant.flavorName == "prod") {
variant.outputs.all { output ->
publishing.publications.create(variant.name, MavenPublication) {
artifact source: output.outputFile, classifier: output.name
pom.withXml {
def dependencies = asNode().appendNode('dependencies')
configurations.getByName(variant.name + "CompileClasspath").allDependencies
.findAll { it instanceof ExternalDependency }
.each {
def dependency = dependencies.appendNode('dependency')
dependency.appendNode('groupId', it.group)
dependency.appendNode('artifactId', it.name)
dependency.appendNode('version', it.version)
}
}
}
}
}
}
tasks.all { task ->
if (task instanceof AbstractPublishToMaven) {
task.dependsOn assemble
}
}
publishing {
Properties properties = new Properties()
properties.load(file('maven.properties').newDataInputStream())
def user = properties.getProperty("maven.user")
def password = properties.getProperty("maven.password")
repositories {
maven {
url "s3://myrepo.com/"
credentials(AwsCredentials) {
accessKey user
secretKey password
}
}
}
}
顯然那些部署插件(這個和bintray也是如此)在涉及風味時會有一些主要的困難。 我不知道具體細節,但它與他們試圖根據文件名解析工件名稱有關。 這一行:
artifact source: output.outputFile, classifier: output.name
這就是為什么我的工件被命名為例如com/mylib/mylib/0.1.1/mylib-0.1.1-prod-release.aar
。 以某種方式從maven加載依賴項時無法識別。 將此行更改為:
artifact source: output.outputFile, classifier: null
使文件看起來像這個com/mylib/mylib/0.1.1/mylib-0.1.1.aar
,顯然很好。
我不知道為什么第一種命名方式不起作用,我假設有一個設置可以將它傳播到元數據。 在這個問題上仍然有賞金,所以也許有人可以解決這個謎團嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.