I am building an Android library (say, MyLibrary
) which will be added to other apps of my company. The library has some dependencies in the build.gradle
file like this:
dependencies{
implementation 'com.alimuzaffar.lib:pinentryedittext:2.0.6'
implementation "com.google.android.gms:play-services-auth-api-phone:17.3.0"
// ... other dependencies
}
After making the library, I created a Github package, so I can add it to another app (say AppDemo
) in AppDemo
s build.gradle
file like this:
dependencies{
implementation 'com.mycompany:mylibrary:1.2.3'
// other dependencies
}
The problem is I get dependency errors, that is, MyLibrary
s dependencies (in this example, pinentryedittext
, play-services-auth-api-phone
as shown in the library's build.gradle
file above) are missing.
I have googled the problem and tried out some solutions, such as, Mobbeel fataar gradle plugin,and some other similar plugins, but I could not make them work.
Could anyone help my with this or give me a working sample? Any help will be appreciable.
publications {
bar(MavenPublication) {
groupId getGroupId()
artifactId getArtificatId()
version getVersionName()
artifact("$buildDir/outputs/aar/${getArtificatId()}-release.aar")
pom.withXml {
final dependenciesNode = asNode().appendNode('dependencies')
ext.addDependency = { Dependency dep, String scope ->
if (dep.group == null || dep.version == null || dep.name == null || dep.name == "unspecified")
return // ignore invalid dependencies
final dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dep.group)
dependencyNode.appendNode('artifactId', dep.name)
dependencyNode.appendNode('version', dep.version)
dependencyNode.appendNode('scope', scope)
if (!dep.transitive) {
final exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
exclusionNode.appendNode('groupId', '*')
exclusionNode.appendNode('artifactId', '*')
} else if (!dep.properties.excludeRules.empty) {
final exclusionNode = dependencyNode.appendNode('exclusions').appendNode('exclusion')
dep.properties.excludeRules.each { ExcludeRule rule ->
exclusionNode.appendNode('groupId', rule.group ?: '*')
exclusionNode.appendNode('artifactId', rule.module ?: '*')
}
}
}
configurations.compile.getDependencies().each { dep -> addDependency(dep, "compile") }
configurations.api.getDependencies().each { dep -> addDependency(dep, "compile") }
configurations.implementation.getDependencies().each { dep -> addDependency(dep, "runtime") }
}
}
}
the above code is referred from Publish an Android library to Maven with aar and source jar