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

标签 gradle spring-boot

我有一个现有的应用程序,它已经支持不同的环境,如桌面、android 等。现在我想在休息接口(interface)上另外提供相同的功能。我虽然可能只是添加不同的 sourceSet + 配置。我可以通过添加一个新的子模块来做到这一点,但我想我也可以在 gradle 中使用不同的配置,比如“桌面”。但不知何故,我无法将 spring boot 依赖项放入我的“服务器”类路径中。如何实现从“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"
}

最佳答案

这听起来很像我的java flavours plugin

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

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

关于gradle - 将 sourceSet 和依赖项添加到从 main 继承的 gradle 构建脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42087429/

相关文章:

android - 原始 kapt 已弃用

intellij-idea - gradle.properties 文件放在哪里

gradle - 找不到org.slf4j软件包

java - 如何使用 Spring @Value 注入(inject) map

java - 如何自定义 Spring Boot 嵌入式 Tomcat 线程池?

jenkins - 如何从gradle任务中调用Groovy函数?

eclipse - Eclipse + Kotlin + Gradle问题: Unresolved reference :println

java - 如何在vaadin中切换当前页面?

list - Thymeleaf 列表包含

spring - 基于 Restful 的视频流