在Gradle中为所有项目配置存储库

时间:2020-07-11 15:40:57

标签: gradle

我正在尝试为所有子项目配置存储库。

我有主要的video.setVideoPath(videoPath);

build.gradle

在子项目buildscript { repositories { mavenLocal() mavenCentral() google() jcenter() ... } dependencies { // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } plugins { id 'base' } allprojects { apply plugin: 'base' repositories { mavenLocal() mavenCentral() google() jcentre() ... } wrapper{ gradleVersion = '6.5.1' distributionType = Wrapper.DistributionType.ALL } dependencies { // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 中,我只有:

build.gradle

我得到:

...

dependencies {
    implementation ....
}

我想在主文件中一次定义Execution failed for task ':compileJava'. > Could not resolve all files for configuration ':compileClasspath'. > Cannot resolve external dependency .... because no repositories are defined. Required by: project : ,因为这些在子项目中不会更改。


在主项目的repositories中,我有

settings.gradle

在子项目的rootProject.name = 'main-project-name' include 'sub-project-name' 中,我有:

settings.gradle

1 个答案:

答案 0 :(得分:1)

在Gradle中进行多项目构建可能有多个build.gradle文件,但只有一个settings.gradle文件(通常在根项目目录中)。您的第二个settings.gradle文件定义了仅包含一个项目的第二个设置。您可以通过运行gradle projects进行检查。只需删除第二个settings.gradle文件即可解决您的问题。

通常,您可以简单地通过命名各个目录然后调用include来定义子项目的名称。 rootProject的名称可以在settings.gradle内定义,因为目录的名称通常不存储在Git之类的版本控制系统中。开发人员可能会将存储库检出到其他目录,从而使Gradle为根项目使用不同的名称。如果希望子项目的名称与其所在目录的名称不同,请使用include和所需名称,然后通过project(':foo').projectDir = file('path/to/foo')更改项目目录。