build.gradle
apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' version = '1.0.1-SNAPSHOT' // Uses JDK 7 sourceCompatibility = 1.7 targetCompatibility = 1.7 war { baseName = 'myproject' //项目名称 version = '1.0.1-SNAPSHOT' } repositories { mavenLocal() //使用 mavenLocal() 时,gradle 会查找 Maven 配置文件${user.home}/.m2/settings.xml maven { url 'http://maven.oschina.net/content/groups/public/' } mavenCentral() } dependencies { //compile 'jstl:jstl:1.2' //providedCompile 'javax.servlet:javax.servlet-api:3.0.1' //compile group: 'commons-collections', name: 'commons-collections', version: '3.2' //compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2' }
gradle几个命令:
gradle cleanEclipse eclipse
gradle eclipse
gradle dependencies
项目中使用 build.gradle
apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' //apply plugin: 'jetty' apply plugin: 'com.bmuschko.tomcat' apply plugin: 'com.bmuschko.tomcat-base' version = '1.0.1-SNAPSHOT' // Uses JDK 7 sourceCompatibility = 1.7 targetCompatibility = 1.7 jar { manifest { attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': version } } //编译JAVA文件时采用UTF-8 tasks.withType(JavaCompile) { options.encoding = "UTF-8" } //wab application打包文件 war { baseName = 'myproject' //项目名称 version = '1.0.1-SNAPSHOT' } repositories { mavenLocal() //使用 mavenLocal() 时,gradle 会查找 Maven 配置文件 ${user.home}/.m2/settings.xml maven { url 'http://maven.oschina.net/content/groups/public/' } mavenCentral() } //设置编码,与之前的options.encoding = "UTF-8" 重复 [compileJava,compileTestJava,javadoc]*.options*.encoding = "UTF-8" dependencies { //将本地多个jar文件作为依赖导入 compile fileTree(dir:'libs/myprojectLib',include:"*.jar") providedCompile 'javax.servlet:javax.servlet-api:3.0.0' providedCompile 'javax.servlet.jsp:javax.jsp-api:2.2.0' //tomcat,详见 https://github.com/bmuschko/gradle-tomcat-plugin def tomcatVersion = '7.0.11' tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}" tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") { exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' } } test { systemProperties 'property': 'value' } //Using a setter method, 设置项目编译生成目录 //project.buildDir = 'target' //Using a getter method,显示项目编译生成目录 println project.buildDir //执行gradle uploadArchives便可将jar包发布到respos文件夹下 uploadArchives { repositories { flatDir { dirs 'repos' } } } //添加tomcat插件 buildscript { repositories { jcenter() } dependencies { classpath 'com.bmuschko:gradle-tomcat-plugin:2.0' } }
gradle依赖jetty版本较低,有些项目报错,也经常出现outofmemory错误,tomcat插件相对稳定一些。
radle-tomcat-plugin插件项目:https://github.com/bmuschko/gradle-tomcat-plugin
在插件运行时,如遇outofmemory,可在执行gradle tomcatRun之前,执行:
set JAVA_OPTS=-XX:MaxPermSize=256m -Xmx512M gradle clean tomcatRun
设置debug模式,可在执行前输入:
set GRADLE_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=9999,server=y,suspend=n
如果遇到页面jsp编译错误,可能是jar包的绝对路径中包含空格,在环境变量中设置:
set GRADLE_USER_HOME=D:\gradle-user-home
设置完成后,执行gradle命令,配置文件就会移动到该文件夹中d:\gradle-user-home
gretty插件,在build.gradle中设置
apply plugin: 'war' apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin' gretty { port = 8080 contextPath ="/myproject" servletContainer = 'tomcat7' }
servletContainer参数可选:'jetty7' 、'jetty8'、'jetty9'、'tomcat7'、'tomcat8'
gradle运行命令为: gradle appRun