不知道怎么取了这么一个奇怪的标题,想到就用了。java
手头有一个web项目是用GWT作的,以前用ANT来编译的。如今换成Gradle来编译。依赖管理(dependency management)就能够更加科学的管理了。固然Maven也能够作这些事情。这里就不说Gradle和Maven的区别和优缺点了。web
首先要改造的是原来项目的目录结构:api
lib src com app ilxlf client server shared war build.xml
改造以后的目录结构:app
src main java com app ilxlf client server shared resources com app ilxlf client server shared build.gradle
区别在与这里我删除掉了lib目录和war目录。eclipse
如今新的目录结构出来了,可是不能直接导入到Eclipse里面。由于当前尚未.classpath, .project文件和settings目录。maven
【注:若是用SpringSource Tool Suite, 可使用“按gradle project”来导入的方式直接导入,不须要运行下面的命令。】ide
在当前目录下在命令行里运行下面的命令:gradle
gradle eclipseui
这个时候就会生成Eclipse所需的文件和目录。包括.classpath, .project, settings, wargoogle
咱们看一下为何会生成这些文件和目录,主要的工做就是build.gradle这个文件:
defaultTasks "build" apply plugin: 'war' apply plugin: 'eclipse' sourceCompatibility = '1.6' targetCompatibility = '1.6' eclipseProject { projectName= 'app' buildCommand='org.eclipse.jdt.core.javabuilder' } configurations { compile } repositories { mavenCentral() } dependencies { compile 'javax.validation:validation-api:1.0.0.GA:sources' compile 'javax.validation:validation-api:1.0.0.GA' compile 'com.google.gwt:gwt-dev:2.4.0' compile 'com.google.gwt:gwt-user:2.4.0' compile 'com.google.gwt:gwt-servlet:2.4.0' providedCompile 'javax.servlet:servlet-api:2.5' } task gwtc(type: JavaExec) { outputs.dir new File('war') inputs.dir new File('src') main = 'com.google.gwt.dev.Compiler' maxHeapSize = '512M' args '-style OBFUSCATED com.app.ilxlf.App -war war'.split() classpath sourceSets.main.java.srcDirs classpath sourceSets.main.resources.srcDirs classpath configurations.compile.asPath.split(';') } war { dependsOn 'gwtc' from 'war' basename='app' }
里面的内容就不解释了。这辈子估计也忘不了。
下一步就是导入到Eclipse里面, 而后打开项目的Web Toolkit, 下面就可使用“Run As -----> Web Application"运行这个项目了。
这里有几个前提须要提醒一下:首先须要下载gradle, 其次下载GWT Eclipse Plugin.
若是你们选择SpringSource Tool Suite,它对这两个plugin的支持很是好。推荐使用。