本教程文章基于:
这是本文章中的模型示例。如下图所示 -
本文章教程的目的是:
MathWebApp: 这是一个WebApp项目;
MathLibrary: 这是一个库项目,包含MathWebApp使用的实用程序类。
GradleMain:将打包上面的两个项目,它是一个主要模块。GradleMain 将:
创建一个 Gradle 项目,在 Eclipse 菜单中,File/New/Other… 找到 Gradle 如下图所示 -
点击下一步(Next>)并输入项目名称: MathLibrary,如下图所示 -
点击下一步(Next>)并选择 Gradle 的安装目录,如下图所示 -
点击下一步(Next>),等待 Eclipse 创建项目,最后点击完成(Finish)就好。如下图所示 -
项目创建完成后,其结构如下图中所示 -
接下来,我们创建一个 MathUtils类,如下所示:
MathUtils类的代码实现如下所示 -
package com.yqxbc; public class MathUtils { public static int sum(int a, int b) { return a + b; } }
同样地,创建另外一个叫作 MathWebApp 的Gradle项目,参考上面 MathLibrary 项目创建的步骤。
打开 build.gradle 文件,并添加一些依懒库,如下图中所示 -
apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'war' apply plugin: 'com.bmuschko.tomcat' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.12' providedCompile "javax.servlet:javax.servlet-api:3.1.0" compile project(':MathLibrary') } dependencies { 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}" } buildscript { repositories { jcenter() } dependencies { classpath 'com.bmuschko:gradle-tomcat-plugin:2.2.2' } }
完成后,执行 Gradle Project Refresh-
创建index.jsp文件,并在这个JSP文件中使用在项目Math Library中创建的MathUtils类。
index.jsp 文件的代码如下所示 -
<html> <body> <h2>Hello World!</h2> <% int a = 200; int b = 300; int c = com.yqxbc.MathUtils.sum(a,b); out.println("<h2>"+ c+"</h2>"); %> </body> </html>
同样地,我们再来创建一个Gradle项目:GradleMain 。完成其项目结构如下图所示 -
打开 GradleMain/settings.gradle 修改其内容如下 -
rootProject.name = 'GradleMain' include ':MathLibrary', ':MathWebApp' project(':MathLibrary').projectDir = new File(settingsDir, '../MathLibrary') project(':MathWebApp').projectDir = new File(settingsDir, '../MathWebApp')
并声明GradleMain依赖于MathLibrary&MathWebApp这两个项目。编辑 GradleMain/build.gradle代码内容如下-
apply plugin: 'java' apply plugin: 'eclipse' repositories { jcenter() } dependencies { testCompile 'junit:junit:4.12' } dependencies { compile project(':MathLibrary') compile project(':MathWebApp') }
完成后,执行 Gradle Project Refresh-
切换到标签“Gradle Task”,然后选择“build/Run Gradle Tasks”。执行结果如下图所示 -
Gradle将按项目的顺序构建完成,结果如下:
Working Directory: D:/worksp/GradleMain Gradle User Home: D:/worksp/gradle/Downloads Gradle Distribution: Local installation at D:/worksp/zftb.cn/gradle-3.1 Gradle Version: 3.1 Java Home: D:/Program Files/Java/jdk1.8.0_65 JVM Arguments: None Program Arguments: None Gradle Tasks: build :MathLibrary:compileJava :MathLibrary:processResources UP-TO-DATE :MathLibrary:classes :MathLibrary:jar :MathWebApp:compileJava :MathWebApp:processResources UP-TO-DATE :MathWebApp:classes :MathWebApp:jar :compileJava :processResources UP-TO-DATE :classes :jar :assemble :compileTestJava :processTestResources UP-TO-DATE :testClasses :test :check :build :MathLibrary:assemble :MathLibrary:compileTestJava :MathLibrary:processTestResources UP-TO-DATE :MathLibrary:testClasses :MathLibrary:test :MathLibrary:check :MathLibrary:build :MathWebApp:war :MathWebApp:assemble :MathWebApp:compileTestJava :MathWebApp:processTestResources UP-TO-DATE :MathWebApp:testClasses :MathWebApp:test :MathWebApp:check :MathWebApp:build BUILD SUCCESSFUL Total time: 3.619 secs
在 MathWebApp 项目上右键点击,在弹出的菜单中选择 “Run As“ -> “Run Configurations ...“,在弹出的对话框中,在 “Gradle Project” 右键点击选择 “New”,如下图所示 -
然后写入一些必要的参数,如下图中红圈的输入部分 -
执行后,在终端上输出结果如下-
Working Directory: D:/worksp/GradleMain Gradle User Home: D:/worksp/gradle/Downloads Gradle Distribution: Local installation at D:/worksp/zftb.cn/gradle-3.1 Gradle Version: 3.1 Java Home: D:/Program Files/Java/jdk1.8.0_65 JVM Arguments: None Program Arguments: None Gradle Tasks: tomcatRun :MathLibrary:compileJava UP-TO-DATE :MathLibrary:processResources UP-TO-DATE :MathLibrary:classes UP-TO-DATE :MathLibrary:jar UP-TO-DATE :MathWebApp:compileJava UP-TO-DATE :MathWebApp:processResources UP-TO-DATE :MathWebApp:classes UP-TO-DATE :MathWebApp:tomcatRun Started Tomcat Server The Server is running at http://localhost:8080/MathWebApp
现在,我们打开浏览器访问 - http://localhost:8080/MathWebApp/ 得到以下结果 -