Gradle在Eclipse中构架多模块工程笔记

1. 新建文件夹比如zypt,进入文件夹执行gradle init

2.生成的build.gradle中添加

subprojects {   apply plugin: 'java'  apply plugin: 'eclipse'  apply plugin: 'idea'  version = '1.0'  
  // JVM 版本号要求  sourceCompatibility = 1.7  targetCompatibility = 1.7  
  // java编译的时候缺省状态下会因为中文字符而失败  [compileJava,compileTestJava,javadoc]*.options*.encoding = 'UTF-8'  ext {  
    //springVersion = '4.2.1.RELEASE'      springVersion = '2.5.6'    hibernateVersion='3.6.10.Final'    struts2Version    = '2.3.20'    mysqlVersion = '5.1.36'  }   repositories {    mavenCentral()  }  jar {    manifest {      attributes("Implementation-Title": "Gradle")    }  }  configurations {    // 所有需要忽略的包定义在此    //all*.exclude group: 'commons-httpclient'    //all*.exclude group: 'commons-logging'    //all*.exclude group: 'commons-beanutils', module: 'commons-beanutils'  }  dependencies {    // 通用依赖    compile(        //logback 与 activeMQ-bin冲突        //"ch.qos.logback:logback-classic:1.1.3",        //"ch.qos.logback:logback-core:1.1.3",        'org.slf4j:slf4j-log4j12:1.7.12',        "org.slf4j:slf4j-api:1.7.12",        'log4j:log4j:1.2.17',        
        //json        "com.google.code.gson:gson:2.3.1",        //"org.json:json:20141113",        'dom4j:dom4j:1.6.1',        "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1",        'javax.transaction:jta:1.1',        
        //db        "mysql:mysql-connector-java:$mysqlVersion",        "com.alibaba:druid:1.0.15",        "com.mchange:c3p0:0.9.5.1",        
        //apache commons        'commons-codec:commons-codec:1.10',        //'commons-configuration:commons-configuration:1.1',        'xml-security:xmlsec:1.3.0',        'commons-lang:commons-lang:2.6',        'commons-collections:commons-collections:3.2.1',        
        'net.sf.ehcache:ehcache:2.10.0',        'cglib:cglib-nodep:3.1',        'org.apache.neethi:neethi:3.0.3',        
        
        //http client        'org.apache.httpcomponents:httpclient:4.3.3'        
        
        
    )    // 依赖mave中不存在的jar    ext.jarTree = fileTree(dir: 'libs', include: '**/*.jar')    ext.rootProjectLibs = new File(rootProject.rootDir, 'libs').getAbsolutePath()    ext.jarTree += fileTree(dir: rootProjectLibs, include: '**/*.jar')    compile jarTree
    // 测试依赖    testCompile(  
        //"org.springframework:spring-test:$springVersion",          "junit:junit:4.11"  
    )   }  // 显示当前项目下所有用于 compile 的 jar.  task listJars(description: 'Display all compile jars.') << {    configurations.compile.each { File file -> println file.name }  }  
  tasks.withType(JavaCompile) {   }}

3.生成的setting.gradle中添加

include 'zypt-core','zypt-web'rootProject.name = 'zypt'

4.创建子模块

创建目录 F:\workspace\zypt\zypt-core\src\main\java
F:\workspace\zypt\zypt-core\src\test\java
F:\workspace\zypt\zypt-web\src\main\java
F:\workspace\zypt\zypt-web\src\test\java

5.完善配置文件

在F:\workspace\zypt\zypt-core下新建build.gradle内容为:

archivesBaseName = 'zypt-core'

在F:\workspace\zypt\zypt-web下新建build.gradle内容为:

apply plugin:"war"  
apply plugin: 'eclipse-wtp'dependencies{  
  // 依赖 core 模块  //compile project(":zypt-core")  compile(      "org.springframework:spring-context:$springVersion",      "org.springframework:spring-context-support:$springVersion",      "org.springframework:spring-core:$springVersion",      "org.springframework:spring-jdbc:$springVersion",      "org.springframework:spring-jms:$springVersion",      "org.springframework:spring-orm:$springVersion",      "org.springframework:spring-test:$springVersion",      "org.springframework:spring-tx:$springVersion",      "org.springframework:spring-web:$springVersion",      "org.springframework:spring-beans:$springVersion",      "org.springframework:spring-aop:$springVersion",      
      "org.apache.struts:struts2-core:$struts2Version",      "org.apache.struts:struts2-codebehind-plugin:$struts2Version",      "org.apache.struts:struts2-config-browser-plugin:$struts2Version",      "org.apache.struts:struts2-convention-plugin:$struts2Version",      "org.apache.struts:struts2-dojo-plugin:$struts2Version",      "org.apache.struts:struts2-json-plugin:$struts2Version",      //"org.apache.struts:struts2-spring-plugin:$struts2Version",      "org.apache.struts.xwork:xwork-core:2.3.20",      
      //hibernate      //"org.hibernate:hibernate-core:$hibernateVersion",      //'org.hibernate:ejb3-persistence:1.0.2.GA',      //'org.hibernate:hibernate-commons-annotations:3.2.0.Final',      //'org.hibernate:hibernate-annotations:3.5.6-Final',      //'org.hibernate:hibernate-entitymanager:3.6.10.Final',      //'org.hibernate:hibernate-validator:3.1.0.GA',    
      //apache commons      
      //jms      //'javax.jms:jms:1.1',      //'org.apache.cxf:cxf-rt-core:2.7.8',      //'org.apache.cxf:cxf-bundle:2.7.8',      //'org.apache.cxf:cxf-rt-frontend-jaxws:2.7.8',      //'org.apache.cxf:cxf-rt-frontend-jaxrs:2.7.8',      'org.apache.ws.xmlschema:xmlschema-core:2.2.1',      'wsdl4j:wsdl4j:1.6.3',      'antlr:antlr:2.7.7',      
      //mail      'org.apache.commons:commons-email:1.4',      
      //poi      'org.apache.poi:poi:3.9',      
      //html      "org.jsoup:jsoup:1.8.3",            
      //ativeMQ      'org.apache.activemq:activemq-all:5.9.0',      
      //quartz      'org.quartz-scheduler:quartz:1.8.6'      
  )  
  //系统提供的依赖  providedCompile(  
      //"javax.servlet:javax.servlet-api:2.5",        "javax.servlet.jsp:jsp-api:2.2.1-b03",  
      //"javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1",      //'javax.servlet.jsp.jstl:jstl:1.2',      "javax.servlet:servlet-api:2.5",      //'javax.servlet:jstl:1.1.2',      'taglibs:standard:1.1.2'  )  
  //runtime 'javax.servlet:jstl:1.1.2'  
  //def tomcatVersion = '7.0.59'  //  tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",  //         "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",  //         "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"}  
task jarWithoutResources(type: Jar) {  
  baseName project.name  
  from("$buildDir/classes/main")  }  
war{  
  dependsOn jarWithoutResources  //  from("$projectDir/src/main/resources") {  //    include "*.*"  //    into("WEB-INF/classes")  //  }    classpath=classpath - sourceSets.main.output  
  classpath fileTree(dir:libsDir, include:"${project.name}-${version}.jar")  }  
task('jarPath')<<{  
  configurations.runtime.resolve().each {  
    print it.toString()+";"  
  }  
  println();  } //eclipse 配置eclipse {    wtp {        //contextPath = "WebContent"        //deployName = "zypt-web"        facet{            facet name: 'jst.web', version: '2.5'            facet name: 'java', version: '1.7'        }        component {            resource sourcePath: 'src/main/java', deployPath: '/WEB-INF/classes'            resource sourcePath: 'WebContent', deployPath: '/'            resource sourcePath: '/remote', deployPath: '/WEB-INF/classes'        }    }}eclipse.wtp.facet.file.withXml { provider ->    provider.asNode().fixed.find { it.@facet == 'jst.java' }.@facet = 'jst2.java'}//为了使'src/yewu/java' 不在Refresh All操作之后被Eclipse删除sourceSets {    main {        java {            srcDir 'src/main/java'        }        resources {            srcDir 'src/resources'        }    }    
    yewu{        java {            srcDir 'src/yewu/java'        }        
    }}

6.在Eclipse中完善Gradle配置

7. 在Eclipse中导入,选择F:\workspace\zypt\,点击按钮“Build Model”,系统将自动把主模块、子模块加入IDE中

8.为了便于在Eclipse使用Tomcat调试Web程序,所以在zypt-web子模块加入了apply plugin:”war”  apply plugin: ‘eclipse-wtp’,在src/main/文件夹下新建webapp文件夹,把WEB-INF和jsp放到此文件下,相对于 WebContent。

9.按照Dynamic Web Project 项目发布,调试web程序即可。

10.有些jar是自有,或者依赖冲突,可以在zypt下新建libs,把jar放到此文件夹下。


转载于:https://my.oschina.net/wowlinda/blog/549424

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值