0

我在我的 Gradle 构建中定义了 2 个 Repos:

repositories {
  mavenLocal()
  maven { url "http://someurl:8081/nexus/content/repositories/myrepo" }
}

现在我只想通过 mavenLocal 解决特定的工件(我的项目内部 groupId),所有其他依赖项都应该通过 maven repo 查找。

我的想法是做类似的事情

mavenLocal{
    addFilter('group') {artifact, file ->
            artifact.group == 'my.group'
        }
}

但它不起作用。有没有办法拦截本地 Maven 存储库的依赖项查找?

注意:我已经看到如何配置 gradle 以仅对某些依赖组使用本地存储库?,但提供的解决方案对我来说并不令人满意。

正如这里所讨论的:http : //forums.gradle.org/gradle/topics/problem_mixing_gradle_and_maven_repositories 我需要 maven 本地 repo 来在 maven 和 gradle 构建之间进行交换

编辑:根据 Peter Niederwisers 的回答,“目前没有更细粒度的方法来控制它。” (当前版本:1.5)

4

2 回答 2

1

在所有存储库中,按照存储库声明的顺序搜索依赖项。一旦成功解决了依赖关系,搜索就会停止。目前没有更细粒度的方法来控制它。

如果您绝对需要一种解决方法,您可以尝试提出一个解决方案,该解决方案基于将依赖声明传播到多个项目(可以有不同的存储库)。

于 2013-04-10T08:57:36.290 回答
1

从gradle 5.1 +开始更新谁在外面:我们现在(正在孵化)声明一个存储库过滤器


repositories {
  mavenLocal{
    content {
       includeGroup "my.group"
    }
  }
}
于 2019-06-19T15:13:35.650 回答