因此,我在 BitBucket 上创建了一个自定义 Maven 存储库。
这些是我遵循的步骤:
首先我创建了库的aar
./gradlew :designsystem:assemble
然后我发布到本地仓库
afterEvaluate {
publishing {
publications.create<MavenPublication>("SADS") {
groupId = "com.strollby.libraries"
artifactId = "design-system"
version = "1.0.2"
pom.packaging = "aar"
artifact(file("../designsystem/build/outputs/aar/designsystem-release.aar"))
pom.withXml {
val dependenciesNode = asNode().appendNode("dependencies")
configurations.getByName("implementation") {
dependencies.forEach {
val dependencyNode = dependenciesNode.appendNode("dependency")
dependencyNode.appendNode("groupId", it.group)
dependencyNode.appendNode("artifactId", it.name)
dependencyNode.appendNode("version", it.version)
}
}
}
}
repositories {
maven {
name = "RemoteDispatch"
url = uri("..")
}
}
}
}
发布:
./gradlew publishSADSPublicationToRemoteDispatchRepository
然后我推送到远程分支master。
并访问神器:
maven {
credentials {
username = "nitheesh"
password = "xxxxx"
}
authentication {
create<BasicAuthentication>("basic")
}
url =
uri("https://api.bitbucket.org/2.0/repositories/strollby/android-design-system/src/master")
}
还有
implementation("com.strollby.libraries:design-system:1.0.0")
从主分支开始,一切都按照我的预期运行良好。 但是,我有一个名为releases的不同分支。如果我使用它,即
https://api.bitbucket.org/2.0/repositories/strollby/android-design-system/src/releases
只有最新版本才有效。两个分支的内容完全相同。
implementation("com.strollby.libraries:design-system:1.0.2") - works
implementation("com.strollby.libraries:design-system:1.0.0") - not work
我收到错误
Failed to resolve: Strollby Design System:designsystem:unspecified
。
这是maven-metadata.xml:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.strollby.libraries</groupId>
<artifactId>design-system</artifactId>
<versioning>
<latest>1.0.2</latest>
<release>1.0.2</release>
<versions>
<version>1.0.0</version>
<version>1.0.1</version>
<version>1.0.2</version>
</versions>
<lastUpdated>20240425063043</lastUpdated>
此外,我尝试了不同的存储库。即使主分支也不起作用。🤔
我哪里做错了?这件事让我很烦恼。
这是传递依赖的问题。
implementation("com.strollby.libraries:design-system:1.0.3"){
isTransitive = false
}
问题解决了!