论坛首页 综合技术论坛

[EG]用Gradle进行多项目构建

浏览 4508 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-12-21   最后修改:2012-12-27

关于神马是gradle 请移步


电梯:http://gradle.group.iteye.com/group/topic/35361

 

 

1.首先在workspace下建立如下文件

gradle.properites

 

Groovy代码  收藏代码
  1. //此处配置编译所用的JDK,如与JAVA_HOME中一样可省去此配置  
  2. org.gradle.java.home=c:/Program Files/Java/jdk1.6.0_11/  
  3. //配置文件编码为UTF-8,旨在支持中文文件  
  4. systemProp.file.encoding=UTF-8  

 

 settings.gradle

 

Groovy代码  收藏代码
  1. //需要进行打包的项目  
  2. include "SAFEMS""PMTMS"  

 

 build.gradle

 

Groovy代码  收藏代码
  1. //应用到所有子项目,此处workspace相当于根项目  
  2. subprojects {  
  3.         apply plugin: 'war'  
  4.     version = '1.0'  
  5.     ext {   
  6.         //发布位置  
  7.         targetDir = 'F:/Target/jar';      
  8.         //java目录  
  9.         javaDir =  'src/cmes/java';  
  10.         //无需打包的包路径  
  11.         javaExclude = ['com/okok/cmes/base/**']  
  12.     }  
  13.   
  14.     //自定义目录结构  
  15.     sourceSets {  
  16.         main {  
  17.             java {  
  18.                 srcDir javaDir;  
  19.                 exclude(javaExclude);  
  20.             }  
  21.         }  
  22.     }  
  23.       
  24.     //中央仓库  
  25.     repositories {  
  26.         mavenCentral()  
  27.     }     
  28.       
  29.     //加载本地依赖  
  30.     dependencies {  
  31.         providedCompile fileTree(dir: 'F:/WF/libs', include: '*.jar')  
  32.   
  33.         compile fileTree(dir: 'WebRoot/WEB-INF/lib', include: '*.jar')  
  34.     }  
  35.     //设置编码  
  36.     tasks.withType(Compile) {  
  37.         options.encoding = "UTF-8"  
  38.     }  
  39. }  
 

 

 

子项目build.gradle

 

Groovy代码  收藏代码
  1. ext{  
  2.     //模块名  
  3.     moduleName = "m1";  
  4.     //jsp && js文件路径  
  5.     webappDir = "WebRoot/$moduleName/";  
  6.     //资源文件路径  
  7.     resourceDir = '/WebRoot/WEB-INF/classes/config';  
  8.     //资源文件名称  
  9.     resourceList =["**/*-"+moduleName+".xml"]  
  10. }  
  11.   
  12. task getjar(overwrite: true,dependsOn: jar) <<{  
  13.     //复制jar  
  14.     println "move jar file : ${project.name}-${version}.jar"  
  15.     copy{  
  16.         from 'build/libs/'  
  17.         into "$targetDir/WebRoot/WEB-INF/lib"  
  18.     }  
  19. }  
  20. //发布jar包  
  21. task publish(overwrite: true,dependsOn: getjar) <<{     
  22.     //复制jsp以及js  
  23.     println "move jsp and javascript files"  
  24.     copy{  
  25.         from webappDir  
  26.         into "$targetDir/$webappDir"  
  27.     }  
  28.     //复制资源文件  
  29.     println "move resource files"  
  30.     copy{  
  31.         from resourceDir  
  32.         into "$targetDir/$resourceDir"  
  33.         include(resourceList)  
  34.     }  
  35.  }  
 

 

 

打jar包时只要在workspace下执行

 

gradle -q publish 

 

便会逐个执行settings文件中设置的项目下脚本中的publish任务,实现将打出的jar文件复制到指定位置

 

注:正在学习中,如有不足,恳请指出~

 

   发表时间:2012-12-27  
建议添个Gradle 介绍。 不少人估计还不知道这个东西。

话说, gradle 一直想用,没用起来.
0 请登录后投票
   发表时间:2012-12-27  
witcheryne 写道
建议添个Gradle 介绍。 不少人估计还不知道这个东西。

话说, gradle 一直想用,没用起来.

多谢,介绍已加
0 请登录后投票
   发表时间:2012-12-27  
Leon.Wood 写道
witcheryne 写道
建议添个Gradle 介绍。 不少人估计还不知道这个东西。

话说, gradle 一直想用,没用起来.

多谢,介绍已加

最后一句:
引用

“如果是新起的项目,不要犹豫,直接上Gradle吧,绝对有不一样的体验。”

实在!
老项目没动力折腾.
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics