【问题标题】:Gradle parent project not using child repositories?Gradle父项目不使用子存储库?
【发布时间】:2016-06-01 13:05:09
【问题描述】:

这就是我的解释。我有一个包含 2 个模块的多项目构建:编解码器和内容。当我尝试构建项目时,它说它找不到存储库。但是在构建单个模块时,没有错误。此外,evaluationDependsOn(':codec') 似乎没有帮助。

Could not resolve all dependencies for configuration ':compileClasspath'.
> Cannot resolve external dependency commons-codec:commons-codec:1.5 because no repositories are defined.
  Required by:
      :multiproject-unified:unspecified > multiproject-unified:codec:unspecified

父 build.gradle:

apply plugin: 'java'

dependencies {
    compile project(':codec')
    compile project(':content')
}

settings.gradle

include 'codec',
        'content'

:codec build.gradle

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-codec:commons-codec:1.5'
}

:content build.gradle

apply plugin: 'java'

repositories {
    mavenCentral()
}

【问题讨论】:

  • 我也遇到过同样的问题,从来没有真正找到答案。我通常将依赖项手动添加到父级。
  • 为什么要使用这样的配置?将 repo 添加到 parent 是一种常见的做法,只是出于好奇:)
  • @MarkBramnik 嗯,真的,有道理。 :D 但是,我觉得这有点令人困惑。
  • @MarkBramnik 我们使用模块来隐藏供应商特定的代码。子模块具有特定于供应商的 maven 存储库,现在我需要添加子模块和父模块的 maven 存储库,这有点难看,因为父模块本身不包含任何供应商代码:-S
  • @bah 你有没有找到任何解决方案?在我的情况下,子子项目在其中一个存储库上具有授权,我不想将这些详细信息拉出给父级。

标签: java gradle


【解决方案1】:

尝试在父项中为整个项目声明您的存储库:

allprojects {
  apply plugin: 'java'
  repositories {
    mavenCentral()
  }
}

【讨论】:

  • 这样可以,但是把子子项目的实现细节拉到父项目就不好了。
猜你喜欢
  • 2015-05-19
  • 2018-09-12
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
  • 2018-12-27
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多