2017-02-07 43 views
0
继承的gradle构建脚本

我有一个现有的应用程序,它已经支持不同的环境,如桌面,android等。现在我想额外提供相同的功能,通过一个休息界面。我虽然可能只是添加一个不同的sourceSet +配置。我可以通过添加一个新的子模块来实现,但我想我也可以在Gradle中使用不同的配置,比如“桌面”。但不知何故,我无法将弹簧引导依赖项放到我的“服务器”类路径中。我如何实现从“main”继承的源代码和依赖项设置,但添加了额外的源代码和库?将sourceSet和dependencies添加到从主

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" 
} 

回答

0

这听起来非常相似,我java flavours plugin

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

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