如何使flatDir与多个同名但不同版本的JAR一起使用

时间:2017-12-03 06:29:27

标签: java gradle

我遇到过Gradle似乎没有处理包含多个同名JAR的flatDir的情况。

我试图创建一个包含ANTLR 3.1.3和ANTLR 2.7.7的配置,奇怪的是3.1.3恰好依赖于2.7.7。

build.gradle

apply plugin: 'java'

configurations {
   antlr3
}

dependencies {
    antlr3 "org.antlr:antlr:3.1.3"
    antlr3 "org.antlr:antlr:2.7.7"
    antlr3 "org.antlr:antlr-runtime:3.1.3"
}

repositories {
    flatDir {
         dir projectDir
    }
}

task horse {
    doLast {
        configurations.antlr3.resolvedConfiguration.resolvedArtifacts.file.each {
             println it
         }
    }
}

在磁盘上:

./antlr-2.7.7.jar
./antlr-3.1.3.jar
./antlr-runtime-3.1.3.jar
./build.gradle

只会设置第一个依赖项,所以gradle horse

:horse
/home/socky-wocky-do-dah/project-3/antlr-3.1.3.jar
/home/socky-wocky-do-dah/project-3/antlr-runtime-3.1.3.jar

BUILD SUCCESSFUL

如果交换依赖关系的顺序,则解析2.7.7 JAR。

使用flatDir时,如何让Gradle引入3.1.3和2.7.7 JAR?

0 个答案:

没有答案