首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Android的内部m2存储库排除在我们的项目之外?

如何将Android的内部m2存储库排除在我们的项目之外?
EN

Stack Overflow用户
提问于 2017-09-21 22:19:04
回答 2查看 1.2K关注 0票数 2

我的组织维护自己的库库&用于构建项目的工具。只有在组织的授权成员手动检查之后,才会将新项添加到此存储库中。这意味着在我们的android项目中,我们将Maven Central、JCenter等从gradle构建脚本中删除。组织维护的存储库是唯一用于在构建服务器上构建版本的存储库,并且应该是开发人员在自己的机器上生成该项目开发版本的唯一存储库。

但是,即使顶级构建脚本看起来像这样(注意:没有存储库):

代码语言:javascript
复制
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
    }
}
allprojects {
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

该项目在从Android运行时仍然会生成,尽管它在从终端调用gradlew时失败(这是应该的)。很明显,Android仍然在引用它自己的内置存储库(位于Android /gradle/m2存储库/)。这导致了一种不受欢迎的情况,即开发人员无意中破坏了构建,因为他们一直在引用不在组织存储库中但在Android内置存储库中的项。与其在每次提交之前每个人都在终端中执行一个gradle构建,不如让gradle文件或项目设置告诉Android不要包含任何未显式声明的存储库吗?

EN

回答 2

Stack Overflow用户

发布于 2017-09-22 06:39:51

Android不为安卓插件 (com.android.tools.build:gradle)使用内置的回购

Android第一次下载这个插件后会缓存它们。

这意味着,在您的情况下,第一次是从认证的回购下载。

您可以在这里找到这个缓存:

代码语言:javascript
复制
file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/tools/build/gradle/

另外,新的安卓插件3.3.x只位于google maven 的"https://maven.google.com“中,而不在jcenter中。

请记住,支持库、firebase和google服务库现在都存储在同一个google maven repo中,但旧版本存储在android_sdk/extras/.中。

在这里,您可以找到更多详细信息:

https://developer.android.com/studio/build/dependencies.html#google-maven

票数 0
EN

Stack Overflow用户

发布于 2019-01-26 15:11:27

很明显,Android仍然在引用它自己的内置存储库(位于Android /gradle/m2存储库/)

只需将这些文件替换为您自己的文件,并编辑maven-metadata.xml以包含正确的版本,例如,android-sdks\extras\m2repository\com\android\support\support-v4\27.0.0通过添加<version>27.0.0</version>来编辑位于android-sdks\extras\m2repository\com\android\support\support-v4中的<version>27.0.0</version>,以防不包括...etc,或者创建一个脚本来实现流程自动化。

如果您的组织的存储库是像离线maven回购一样构建的,那么它可能已经以这种方式组织起来了。

我最近以这种方式添加了一些支持库,它不用使用google()、jscenter()...etc,而且构建是成功的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46353987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档