Maven本地存储库指向错误的位置

时间:2018-07-19 08:47:10

标签: maven android-gradle repository

在我的Android项目中,我已经将mavenLocal()定义为root build.gradle文件中的存储库。但是,如果我发布对mavenLocal的更改,那么我的项目将无法识别这些更改。但是,如果我明确定义位置,则会找到更改,证明更改已正确发布。所以好像我的mavelLocal没有指向默认位置?

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'com.google.gms:google-services:4.0.1'
        classpath 'io.fabric.tools:gradle:1.25.1'
    }
}

allprojects {
    repositories {
        mavenLocal() // picks wrong location? 
        // maven { "C:/Users/<username>/.m2/repository/" } // mavenLocal fallback
        maven { url nexusRepositoryUrl }
        maven { url nexusSnapshotsUrl }
        maven { url nexusReleasesUrl }
        mavenCentral()
        google()
        maven { url "https://maven.google.com" }
        jcenter()
    }
}

我该如何解决?我正在同一个项目中的几个人一起工作,所以后备方法不是解决方案。当然,我可以使用可变的用户路径,但这不是我想要的:

maven { url System.getenv('USER_PATH') + "/.m2/repository/" }

我在/.m2目录中没有settings.xml文件(可用于覆盖默认的Maven本地存储库位置)。我可以创建一个解决该问题的方法,但是感觉没有必要将“默认”位置更改为“默认”位置。

因此,我正在专门寻找为什么mavenLocal()的默认实现似乎无效的原因。

编辑

以下内容可能是相关的,也可能是不相关的问题/问题:我遇到了一些麻烦,无法将旧的存储库缓存替换为新的存储库,因此在这种情况下也可能是个问题。我对gradle缓存的工作方式了解不多,因此,如果有人可以为我提供明确的解决方案,那么它也可能会解决问题。有时我可以清除缓存,但是问题一直在发生,因此我需要永久修复。

以下各项组合后,缓存似乎会临时更新(不是特定于订单的,并且无法找出解决问题所需的确切条件):

  • Android Studio>文件>使缓存无效并重新启动
  • 在build.gradle中删除mavenLocal定义>同步项目>添加mavenLocal定义>同步项目
  • 运行>清理项目>重建项目
  • 在设备上安装并运行项目

0 个答案:

没有答案