Gradle 带有项目配置的渐变依赖项替换

Gradle 带有项目配置的渐变依赖项替换,gradle,dependencies,Gradle,Dependencies,我正在尝试用本地子项目替换所有的-SNAPSHOT依赖项。它工作正常,但我有一个问题:我无法定义我想要使用的项目配置(它需要默认值,它扩展了运行时,我不希望这样): 我知道它为什么不起作用,文档非常清楚:它不支持配置名称 是否有已知的解决此限制的方法?在您的设置.gradle文件中,您可以按照以下思路执行操作: def myDeps = ['my-dependency', 'my-dependency-2'] for (String projectName : myDeps) { if (n

我正在尝试用本地子项目替换所有的
-SNAPSHOT
依赖项。它工作正常,但我有一个问题:我无法定义我想要使用的项目配置(它需要
默认值
,它扩展了
运行时
,我不希望这样):

我知道它为什么不起作用,文档非常清楚:它不支持配置名称


是否有已知的解决此限制的方法?

在您的设置.gradle文件中,您可以按照以下思路执行操作:

def myDeps = ['my-dependency', 'my-dependency-2']
for (String projectName : myDeps) {
  if (new File(rootDir, '../' + projectName).exists()) {
    def path = '../' + projectName
    def mod  = 'my.company:' + projectName
    System.out.println("Adding composite build for project: " + projectName + " using path: " + path + " replacing module: " + mod);
    includeBuild(path) {
      dependencySubstitution {
        substitute module(mod) with project(':')
      }
    }
   } else {
     System.out.println("Skipping composite build for project: " + projectName);
   }
}
如果您喜欢,您可以像我们一样,不使用依赖项的静态列表。相反,您可以自动发现当前项目。这要求您的公司在每个依赖项中遵循静态配置模板,因为您必须手动解析文件

def myDeps = ['my-dependency', 'my-dependency-2']
for (String projectName : myDeps) {
  if (new File(rootDir, '../' + projectName).exists()) {
    def path = '../' + projectName
    def mod  = 'my.company:' + projectName
    System.out.println("Adding composite build for project: " + projectName + " using path: " + path + " replacing module: " + mod);
    includeBuild(path) {
      dependencySubstitution {
        substitute module(mod) with project(':')
      }
    }
   } else {
     System.out.println("Skipping composite build for project: " + projectName);
   }
}