同时具有多个Gradle依赖版本

时间:2019-09-23 15:39:45

标签: java gradle bukkit

StackOverflow上有大量关于此的线程,但是我似乎找不到关于如何使它们同时工作的单一消息。

Spigot(包装了CraftBukkit)是一个非常流行的Minecraft服务器框架,它与模糊的Minecraft代码和独立的开发人员代码之间增加了一定程度的分离。注意事项之一是,通过API不可能在Minecraft服务器上实现所有可能的功能。

我正在从事的项目要求我能够访问某些特定于版本的程序包,这些程序包的名称以org.bukkit.craftbukkit.v1_14_R1.*开头。因为我正在处理的项目必须跨多个版本工作,所以我需要一个编译的工件才能兼容许多不同的版本。

如何让Gradle对这种设置感到满意?到目前为止,基于this链接,我有以下内容:

configurations {
    implementation13_0
    implementation13_1
    implementation13_2
    implementation14_0
    implementation14_1
    implementation14_2
    implementation14_3
    implementation14_4
}

dependencies {
    implementation13_0 group: 'org.spigotmc', name: 'spigot', version: '1.13-R0.1-SNAPSHOT'
    implementation13_1 group: 'org.spigotmc', name: 'spigot', version: '1.13.1-R0.1-SNAPSHOT'
    implementation13_2 group: 'org.spigotmc', name: 'spigot', version: '1.13.2-R0.1-SNAPSHOT'
    implementation14_0 group: 'org.spigotmc', name: 'spigot', version: '1.14-R0.1-SNAPSHOT'
    implementation14_1 group: 'org.spigotmc', name: 'spigot', version: '1.14.1-R0.1-SNAPSHOT'
    implementation14_2 group: 'org.spigotmc', name: 'spigot', version: '1.14.2-R0.1-SNAPSHOT'
    implementation14_3 group: 'org.spigotmc', name: 'spigot', version: '1.14.3-R0.1-SNAPSHOT'
    implementation14_4 group: 'org.spigotmc', name: 'spigot', version: '1.14.4-R0.1-SNAPSHOT'
}

task libs(type: Sync) {
    from configurations.implementation13_0
    from configurations.implementation13_1
    from configurations.implementation13_2
    from configurations.implementation14_0
    from configurations.implementation14_1
    from configurations.implementation14_2
    from configurations.implementation14_3
    from configurations.implementation14_4
    into "$buildDir/libs"
}

但是,当我在运行上述任务后尝试构建项目时,它无法识别任何版本。有人对我如何工作有任何建议吗?

1 个答案:

答案 0 :(得分:0)

您需要使用buildtools构建spigot的版本,然后,需要将mavenLocal()添加到存储库中。