将sourceSet和依赖项添加到继承自main的gradle构建脚本

时间:2017-02-07 10:28:47

标签: gradle spring-boot

我有一个现有的应用程序已经支持不同的环境,如桌面,Android等。现在我想在rest接口上另外提供相同的功能。我虽然可能只是添加一个不同的sourceSet +配置。我可以使用添加一个新的子模块来做到这一点,但我想我也可以在gradle中使用不同的配置,就像“桌面”一样。但不知何故,我无法将spring boot依赖项纳入我的“server”类路径。我如何实现继承自“main”的源和依赖项设置,但添加了其他源和库?

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.1.0'
        classpath 'de.dynamicfiles.projects.gradle.plugins:javafx-gradle-plugin:8.7.0'
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.1.RELEASE"
    }
}

apply plugin: 'org.springframework.boot'

springBoot {
    customConfiguration = "server"

}

sourceSets {
    server {
        java {
            srcDirs = ['src/server/java']
        }
        resources {
            srcDirs = ['src/server/resources']
        }
        compileClasspath += main.output + configurations.server
        runtimeClasspath += main.output + configurations.server
    }
}

configurations {
    server.extendsFrom(compile)
}

dependencies {
    // some dependencies ...

    // Only for the spring webserver
    server "org.springframework.boot:spring-boot-starter-web"
}

1 个答案:

答案 0 :(得分:0)

这听起来与我的java flavours plugin

非常相似
apply plugin: 'com.lazan.javaflavours'
javaFlavours {
    flavours = ['free', 'paid']
}

该插件为从main继承的每种flavor创建源集。该插件还为每种风格创建了编译,测试和jar任务。有趣的代码here