Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态加载“buildscript”的本地“maven”存储库路径_Maven_Android Studio_Gradle_Build.gradle_Properties File - Fatal编程技术网

动态加载“buildscript”的本地“maven”存储库路径

动态加载“buildscript”的本地“maven”存储库路径,maven,android-studio,gradle,build.gradle,properties-file,Maven,Android Studio,Gradle,Build.gradle,Properties File,我试图为上述问题找到一个合适的解决方案,但到目前为止还找不到出路,因此在这里发布帖子,以获得该问题的一些正确和精确的解决方案 我在代码版本控制中包括了appbuild.gradle,因为在build.gradle(插件依赖级别)中经常会有更改。我需要在版本中跟踪此文件-长话短说。现在,作为每个团队成员,对于以下指定的依赖项有不同的位置-我尝试从我的CustomLocalPath.properties加载此文件,但是从.properties文件加载变量在这里似乎不起作用。下面列出的url属性似乎只

我试图为上述问题找到一个合适的解决方案,但到目前为止还找不到出路,因此在这里发布帖子,以获得该问题的一些正确和精确的解决方案

我在代码版本控制中包括了app
build.gradle
,因为在
build.gradle
(插件依赖级别)中经常会有更改。我需要在版本中跟踪此文件-长话短说。现在,作为每个团队成员,对于以下指定的依赖项有不同的位置-我尝试从我的
CustomLocalPath.properties
加载此文件,但是从
.properties
文件加载变量在这里似乎不起作用。下面列出的
url
属性似乎只接受纯字符串

buildscript{
  repositories{
    google()
    jcenter()
    maven{
      url 'D:\\android_workspace_dependencies\\My_XYZ_dependency\\lib'  // <-- need to make this path dynamic
    }
  }
}
buildscript{
存储库{
谷歌()
jcenter()
马文{

url'D:\\android\u workspace\u dependencies\\My\u XYZ\u dependency\\lib'/通常,在公司内部,您为工件运行Nexus或Artifactory服务器。这是放置依赖项的地方,您不需要更多的本地路径。

首先,如果您想从本地libs目录解析依赖项,您应该使用>maven
存储库

为了解决您的具体问题,这里至少有两个基于标准Gradle功能的简单解决方案:

解决方案1-使用 Init脚本功能允许您根据当前生成环境自定义Gradle执行。每个团队成员都可以在其本地Init脚本中声明其特定的本地存储库,如下所示:

$USER\u HOME/.gradle/init.gradle

项目构建脚本将只包含公共/共享存储库

格雷德尔先生

解决方案2-使用 您可以使用Gradle属性来配置存储库url/路径,并让团队成员在其特定于用户的
Gradle.properties
文件中提供此属性值:

build.gradle

buildscript {
    repositories {
        google()
        jcenter()  
        if (project.hasProperty("myLocalLibRepo")) {
            flatDir {
                dirs myLocalLibRepo
            }
            // or with local mavel repo:
            //  maven { url  myLocalLibRepo  }
        }
    }
}
团队成员的属性文件:

$USER\u HOME/.gradle/gradle.properties


myLocalLibRepo=c:/DEV/libs

你能参考一些关于如何设置工件服务器(Ubuntu)的教程吗?此外,如果你知道如何暂时解决动态路径问题,那就太好了。谷歌“sonatype nexus”或“jfrog artifactory”他们都有免费版本。仍在等待针对已发布问题的答案,可能来自文档参考,无论这是否可行。仍在等待针对已发布问题的答案,可能来自文档参考,无论这是否可行。我认为下面描述的解决方案应该有效。请确认很高兴尝试你的解决方案,虽然我没有尝试过,但我希望这能奏效。在验证后(在接下来的几天内),我会将其标记为接受。
buildscript{
  repositories{
    google()
    jcenter()    
  }
}
buildscript {
    repositories {
        google()
        jcenter()  
        if (project.hasProperty("myLocalLibRepo")) {
            flatDir {
                dirs myLocalLibRepo
            }
            // or with local mavel repo:
            //  maven { url  myLocalLibRepo  }
        }
    }
}