[EG]用Gradle进行多项目构建
1.首先在workspace下建立如下文件
gradle.properites
?
//此处配置编译所用的JDK,如与JAVA_HOME中一样可省去此配置org.gradle.java.home=c:/Program Files/Java/jdk1.6.0_11///配置文件编码为UTF-8,旨在支持中文文件systemProp.file.encoding=UTF-8
?
?settings.gradle
?
//需要进行打包的项目include "SAFEMS", "PMTMS"
?
?build.gradle
?
//应用到所有子项目,此处workspace相当于根项目subprojects { apply plugin: 'war'version = '1.0'ext { //发布位置targetDir = 'F:/Target/jar';//java目录javaDir = 'src/cmes/java';//无需打包的包路径javaExclude = ['com/okok/cmes/base/**']}//自定义目录结构sourceSets {main {java {srcDir javaDir;exclude(javaExclude);}}}//中央仓库 repositories {mavenCentral()}//加载本地依赖dependencies {providedCompile fileTree(dir: 'F:/WF/libs', include: '*.jar')compile fileTree(dir: 'WebRoot/WEB-INF/lib', include: '*.jar')}//设置编码tasks.withType(Compile) {options.encoding = "UTF-8"}}?
?
?
?
子项目build.gradle
?
ext{//模块名moduleName = "m1";//jsp && js文件路径webappDir = "WebRoot/$moduleName/";//资源文件路径resourceDir = '/WebRoot/WEB-INF/classes/config';//资源文件名称resourceList =["**/*-"+moduleName+".xml"]}task getjar(overwrite: true,dependsOn: jar) <<{//复制jarprintln "move jar file : ${project.name}-${version}.jar"copy{from 'build/libs/'into "$targetDir/WebRoot/WEB-INF/lib"}}//发布jar包task publish(overwrite: true,dependsOn: getjar) <<{//复制jsp以及jsprintln "move jsp and javascript files"copy{from webappDirinto "$targetDir/$webappDir"}//复制资源文件println "move resource files"copy{from resourceDirinto "$targetDir/$resourceDir"include(resourceList)} }?
?
?
?
打jar包时只要在workspace下执行
?
gradle -q publish?
?
便会逐个执行settings文件中设置的项目下脚本中的publish任务,实现将打出的jar文件复制到指定位置
?
注:正在学习中,如有不足,恳请指出~
?
?
欢迎加入Gradle群组一起学习进步
?
http://gradle.group.iteye.com/
?
?