多项目Java构建中的动态项目依赖关系

多项目Java构建中的动态项目依赖关系,java,groovy,gradle,Java,Groovy,Gradle,我有一个使用Gradle的多项目Java构建,其结构类似于: :project:a :project:b \ / \ / \ / ▼ ▼ :core / | \ / | \ / | \ ▼ | ▼ :schema:a | :schema:b

我有一个使用Gradle的多项目Java构建,其结构类似于:

:project:a     :project:b
       \         /
        \       /
         \     /
          ▼   ▼
          :core
         /  |  \
        /   |   \
       /    |    \
      ▼     |     ▼ 
:schema:a   |   :schema:b
            |
            ▼
        :schema:c
这些节点中的每一个都是本地Java Gradle子项目,其中:project:a和:project:b具有对:core的项目依赖关系:schema:a、:schema:b和:schema:c是包含数据库模式类/模型的Java Gradle项目,这些类/模型应该由:core使用,但一次只能使用一个模式

现在我想做以下事情:如果我构建:project:a,:core应该使用:schema:a作为依赖项。如果我构建:project:b,:core应该使用:schema:b作为依赖项。如果我自己构建:core,它应该使用:schema:c作为回退

我通过使用做了很多实验,但这似乎不起作用,因为compileJava任务使用的是“compile”配置,所以看起来不像使用配置,因为这是正确的方法。我得到了依赖逻辑工作和:项目::依赖项,项目::依赖项和:项目:核心:依赖关系用正确的逻辑显示了所需的图,但是一个构建没有考虑这一点,因为像我所说的CixJava任务只考虑了“编译”配置。 然后我尝试使用“排除”,如中所述,但这似乎不适用于项目,只适用于外部依赖项


我想知道对模式使用项目是否是正确的方法。也许我应该使用,然后根据正在编译的项目切换:core中模式的源目录。

模式项目是否包含相同的类(具有不同的定义)?模式项目是否包含相同的类(具有不同的定义)?