在Gradle中过滤依赖项查找Repository

时间:2013-04-10 08:32:41

标签: maven dependencies gradle repository

我在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存储库的依赖项查找?

注意:我见过How to configure gradle to use a local repository only for certain dependency groups?,但提供的解决方案对我来说并不理想。

如前所述:http://forums.gradle.org/gradle/topics/problem_mixing_gradle_and_maven_repositories我需要maven本地仓库在maven和gradle构建之间进行交换

编辑:Peter Niederwisers回答说,“目前还没有一种更细粒度的方法可以控制它。” (当前版本:1.5)

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

谁在as of gradle 5.1 +上获得更新:我们现在(正在孵化)Declaring a repository filter


repositories {
  mavenLocal{
    content {
       includeGroup "my.group"
    }
  }
}