我正在构建一个Android库(比如,MyLibrary
),它将添加到我公司的其他应用程序中。库在<code>构建中有一些依赖项。gradle文件如下:
dependencies{
implementation 'com.alimuzaffar.lib:pinentryedittext:2.0.6'
implementation "com.google.android.gms:play-services-auth-api-phone:17.3.0"
// ... other dependencies
}
制作库后,我创建了一个Github包,这样我就可以将它添加到AppDemo
sbuild.gradle
文件中的另一个应用程序(比如AppDemo
),如下所示:
dependencies{
implementation 'com.mycompany:mylibrary:1.2.3'
// other dependencies
}
问题是我得到了依赖性错误,也就是说,MyLibrary
的依赖性(在本例中,PiEntryEditText
,play services auth api phone
,如上面库的build.gradle
文件所示)丢失。我用谷歌搜索了这个问题,并尝试了一些解决方案,例如Mobbeel fataar gradle插件和其他一些类似的插件,但我无法让它们工作。有人能帮我吗?或者给我一个工作样本?任何帮助都是值得的。
如果有人需要,在大量搜索和尝试一些gradle插件(mobbeel,kezong等)后,我最终得出结论,在github包中添加依赖项是一个坏主意,因此最终用户应该包含这些依赖项。也就是说,最终用户应该以这种方式添加梯度相关性:
dependencies{
implementation 'com.mycompany:mylibrary:1.2.3' // <-- the actual lirbary
// library dependencies
implementation 'com.alimuzaffar.lib:pinentryedittext:2.0.6'
implementation "com.google.android.gms:play-services-auth-api-phone:17.3.0"
// other dependencies of end user's app
// ... ... ...
}
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") }
}
}
}
上面的代码从Publish an Android库引用到Maven with aar和source jar
我想要添加此依赖项编译到我的Android studio项目中。 当将此添加到依赖项中并单击同步时,显示此错误:
像这样的问题有很多,但是似乎没有一个对我有效或者直接回答我的问题。 我正在使用Jhipster和MongoDB Atlas。Jhipster使用一个名为Mongobee的库,其中使用了一个适用于MongoDB的方法,但不适用于MongoDB Atlas。要启动,Mongobee似乎不再维护。 因此,我找到了某人的建议PR,他们将其发送给Mongobee进行审查,我接受了代码更改,将MongoBe分
所以,我有一个配置了包注册表的GitHub项目。它有两个包: 包页面只有Maven的说明,除此之外,说明被破坏了(不是在Maven中添加依赖项的有效方法): 问题是:如何在Gradle构建中添加该包?
本文向大家介绍android-gradle 如何添加依赖项,包括了android-gradle 如何添加依赖项的使用技巧和注意事项,需要的朋友参考一下 示例 下面的示例描述了如何在app /模块的build.gradle文件中声明三种不同类型的直接依赖关系:
我正在为一个供应商做一个库项目,它需要Android Volley作为一个依赖项。我已经在Android Studio中使用了这个Create aar文件来创建.aar文件,并将其包含在一个测试项目中,我正在使用这个添加本地.aar文件到使用“flatdirs”的Gradle build中是不起作用的。库链接精细,项目编制无差错。但在运行时,测试应用程序崩溃,说它找不到Volley 我的图书馆项目