我必须将第三方库集成到我的Android Studio项目中,并且没有任何问题,效果很好。
它要求将以下配置添加到项目' s build.gradle(示例配置如下)
allprojects {
repositories {
jcenter()
maven {
url "http://link/location"
}
}
}
然后将依赖项添加到 app.gradle ,如下所示
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'
compile 'xxx.xx:xxx:1.11.0:@aar'
}
但我的要求是创建一个库模块(在项目中),它包含了第三方库集成。
想法是将包含少量公共方法(在其中使用此第三方库方法)的库分发给其他人以在其应用程序中集成。
正如我之前提到的使用这个第三方库我需要使用他们自己的Maven Repository并要求在Projects build.gradle中放置设置。但是,由于我想在My Library Module中扭曲所有内容,我刚刚测试了将存储库位添加到库模块的 build.gradle中。但这会导致编译错误。
repositories {
jcenter()
maven {
url "http://link/location"
}
}
我的问题是我可以实现我想做的事吗?如果是这样,我在这里失踪了。感谢
EDITS
简要说明我要做的事情。
此第三方库在标准jcenter或mavenCentral存储库中不可用。相反,它驻留在他们自己的Maven资源库服务器上。这就是为什么当需要集成它要求在根级别(项目)build.gradle中指定服务器位置时,如下所示。然后我可以添加依赖...
allprojects {
repositories {
jcenter()
maven {
url "http://link/location"
}
}
}
但是当我想要在Library Module中包含这个集成时,试图在my Library Module中将上面的存储库位置添加到gradle.build中。
所以我可以访问那些类,但编译MY Library项目的主应用程序说无法解析第三方库位置中的库。实际上,只要我的图书馆模块知道它,主要应用程序就不应该知道...
答案 0 :(得分:0)
实际上,只要我的图书馆模块知道,主要应用程序就不应该知道
如果第三方模块是开源的,请将它分叉,将您的包装器代码放在fork中,然后通过自己的方式运送fork。
如果第三方模块不是开源软件,请与供应商讨论您通过其他方式(例如,您自己的内部存储库以及您自己的库)分发此代码的选项。