java - Gradle:为什么 sourceSets.main.output 可用,但其他输出不可用?

标签 java gradle

好的,我正在使用 gradle 编译 4 个源集,其中一个是主源集,另外 3 个是其他小段代码,这些代码是基于“服务器”中稍后可用的其他类通过反射加载的。

到目前为止,这有效

        configurations {
            extralibs
            worldguard5
            worldguard6
            worldguard613
        }
    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
            }
        }
        wg5 {
            compileClasspath = configurations.worldguard5
            java {
                srcDir 'src/worldguard5/java'
            }
        }
        wg6 {
            compileClasspath = configurations.worldguard6
            java {
                srcDir 'src/worldguard6/java'
            }
        }
        wg613 {
            compileClasspath = configurations.worldguard613
            java {
                srcDir 'src/worldguard613/java'
            }
        }
dependencies {
    compile 'mysql:mysql-connector-java:5.1.13'
    compile 'org.xerial:sqlite-jdbc:3.7.2'
    compile 'com.sk89q:worldguard:6.0.0-SNAPSHOT'
    compile 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard5 sourceSets.main.output
    worldguard5 'com.sk89q:worldguard:5.9.1-SNAPSHOT'
    worldguard5 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard6 sourceSets.main.output
    worldguard6 'com.sk89q:worldguard:6.0.0-SNAPSHOT'
    worldguard6 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard613 sourceSets.wg6.output
    worldguard613 'com.sk89q.worldguard:worldguard-legacy:6.1.3-SNAPSHOT'
    worldguard613 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
}

现在除了

之外的所有内容都可以工作

worldguard613 sourceSets.wg6.output

出现错误

> Could not get unknown property 'worldguard6' for SourceSet container.

有什么想法吗?

========================================== 更新它有效。接受的答案有效

dependencies {
    compile fileTree(dir: 'lib', include: '*.jar')
    compile 'org.json:json:20090211'
    compile 'javax.validation:validation-api:1.1.0.Final'
    compile 'mysql:mysql-connector-java:5.1.13'
    compile 'org.xerial:sqlite-jdbc:3.7.2'
    compile 'com.sk89q:worldguard:6.0.0-SNAPSHOT'
    compile 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard5 sourceSets.main.output
    worldguard5 'com.sk89q:worldguard:5.9.1-SNAPSHOT'
    worldguard5 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard6 sourceSets.main.output
    worldguard6 'com.sk89q:worldguard:6.0.0-SNAPSHOT'
    worldguard6 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    worldguard613 sourceSets.main.output
    worldguard613 'com.sk89q.worldguard:worldguard-legacy:6.1.3-SNAPSHOT'
    worldguard613 'com.sk89q:worldedit:5.5.9-SNAPSHOT'
    testCompile 'junit:junit:4.12'
}



sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
    }
    wg5 {
        compileClasspath = configurations.worldguard5
        java {
            srcDir 'src/worldguard5/java'
        }
    }
    wg6 {
        compileClasspath = configurations.worldguard6
        java {
            srcDir 'src/worldguard6/java'
        }
    }
    wg613 {
        compileClasspath = configurations.worldguard613 + wg6.output
        java {
            srcDir 'src/worldguard613/java'
        }
    }
}

最佳答案

也许尝试类似的事情:

wg613 {
    compileClasspath = configurations.worldguard613 + wg6.output
    java {
        srcDir 'src/worldguard613/java'
    }
}

并删除

worldguard613 sourceSets.wg6.output

关于java - Gradle:为什么 sourceSets.main.output 可用,但其他输出不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830223/

相关文章:

android - 将 JVM 单元测试作为 Android 插桩测试运行

java - LibGDX 项目未识别 Lombok

java - 使用Ant修改web.xml

java - 用Java获取 'external' IP地址

java - 如何使用 selenium webdriver 在 JQGrid 中选择单选按钮

android - Gradle 项目刷新失败,导致 http ://downloads/. ../gradle-2.4.1

java - UIMA ruta - 使用来自不同 View 的注释

Java GUI与串口通信

spring-boot - Spring Boot Dev Tools/Live Reloading - 静态资源刷新不起作用

java - gradle生成protobuf类但显示编译错误