我有一个现有的应用程序,它已经支持不同的环境,如桌面、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/