如何创建一个基于Maven的SmartGWT项目

使用环境

  1. Eclipse的版本为:Luna Service Release 2 (4.4.2)(这个其实不是很重要,你完全可以使用最新版本的Eclipse或者MyEclipse)
  2. Maven的版本为:3.1.0
  3. SmartGWT的版本为:6.0p
  4. GWT的SDK版本为:2.7

前提准备

  1. 你需要安装Maven。如何安装Maven不是文本的内容,你可以参考我的关于Maven的博客。
  2. 把SmartGWT的jar包上传到私服服务器。

操作过程

创建GWT项目

因为SmartGWT是基于GWT的,所以想要创建SmartGWT项目,先要创建GWT的项目。
一般来说,Eclipse或者MyEclipse已经集成了Maven,如果你的没有集成,那么先安装Maven的插件,这里不过多介绍。这里提示一下,我们并不使用Eclipse自带的Maven。我们使用自己的安装的Maven。关于如何使用自己的Maven,请看本文最后面的附录。

创建一个Maven项目

按下快捷键:Ctrl+n,弹出新建窗口,如下图所示:

  1. 在输入框中输入maven
  2. 选中Maven Project
  3. 点击Next按钮

弹出窗口,如下图所示:

  1. 直接点击Next

弹出窗口,选择骨架,如下图所示:

  1. 筛选框中输入gwt
  2. 若筛选结果能够出现如图所示的结果,则跳过第3步,直接到第4步
  3. 点击Add Archetype...按钮,弹出窗口Add Archetype
    1. 输入骨架的坐标信息。
      Group Id : org.codehaus.mojo
      Artifact Id : gwt-maven-plugin
      Version : 2.7.0
    2. 点击OK
    3. 返回到第1步
  4. 选中记录,点击Next按钮,到下一步

输入你要创建的项目的相关信息,如下图所示:

  1. 输入你要创建的项目的坐标信息,如果不清楚概念,建议学习一下Maven中坐标的概念
  2. 输入模块名称
  3. 点击Add...按钮,添加模块
  4. 点击Finish按钮,完成创建GWT项目。

删除不需要的文件

按照我们下载的gwt的骨架,Maven给我们生成了GWT的项目,文件结构如下图所示:

因为是默认生成的项目,有些文件或者内容是我们不需要的,我们来删掉它们。

删除文件,如下图所示:

步骤就直接看图吧。

修改文件

  1. 打开入口类:smartgwtdemo4.java
  2. 删除所有的代码,换成图中所示的代码。
    代码如下所示:
package com.test.smartgwtdemo4.client;import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;public class smartgwtdemo4 implements EntryPoint {public void onModuleLoad() {com.smartgwt.client.widgets.IButton button = new com.smartgwt.client.widgets.IButton("smartGWt的按钮组件");RootPanel.get().add(button);com.google.gwt.user.client.ui.Button gwtButton = new com.google.gwt.user.client.ui.Button("GWT的按钮组件");RootPanel.get().add(gwtButton);}
}

从代码中可以看出来,我使用了GWT的组件Button和SmartGWT的组件IButton。如果页面上能够正确显示着两个按钮,那么说明SmartGWT就创建成功了。
报错?没错,因为现在还没修改Maven的配置文件POM.xml呢。

修改web.xml文件,入下图所示:

  1. 打开web.xml
  2. 修改代码如下所示
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><!-- Servlets --><!-- Default page to serve --><welcome-file-list><welcome-file>smartgwtdemo4.html</welcome-file></welcome-file-list></web-app>

修改smartgwtdemo4.html,如下图所示:

  1. 打开页面smartgwtdemo4.html
  2. 修改代码如下:
<!doctype html><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="smartgwtdemo4.css">
<title>smartgwtdemo4</title>
</head>
<body><!-- 重要 : 你必须设置变量isomorphicDir的值为[MODULE_NAME]/sc/ ,使SmartGWT的资源能够被正确解析--><script type="text/javascript">var isomorphicDir = "smartgwtdemo4/sc/";</script><!--导入SC的核心API--><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Core.js'></script><!--导入 SmartClient --><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Foundation.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Containers.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Grids.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Forms.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_RichTextEditor.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_DataBinding.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Calendar.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Drawing.js'></script><!-- 加载主题 --><script type="text/javascript"src='smartgwtdemo4/sc/skins/Enterprise/load_skin.js'></script><script type="text/javascript" lang="javascript"src="smartgwtdemo4/smartgwtdemo4.nocache.js"></script>
</body>
</html>

接下来修改模块定义文件,如下图所示:

  1. 双击打开模块定义文件smartgwtdemo4.gwt.xml
  2. 修改配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 当更新你的GWT的版本的时候, 你应该也更新这个DTD引用,以便你的应用程序可以使用GWT模块最新的功能. -->
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.7.0//EN""http://gwtproject.org/doctype/2.7.0/gwt-module.dtd">
<module rename-to='smartgwtdemo4'><!-- 继承核心Web工具材料. --><inherits name='com.google.gwt.user.User' /><!-- 继承默认GWT样式表.你可以通过取消下面的任意一行的注释来改变你的GWT应用程序的主题. --><!-- 其实继承的主题模块中的模块定义文件中,就定义了一个CSS文件的引用 --><!-- <inherits name='com.google.gwt.user.theme.standard.Standard' /> --><!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --><!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> --><!-- 其他的模块继承 --><inherits name="com.smartgwt.SmartGwtNoScript" /><inherits name="com.smartgwt.DrawingNoScript" /><inherits name="com.smartgwt.tools.SmartGwtTools" /><inherits
        name="com.smartclient.theme.enterpriseblue.EnterpriseBlueResources" /><!-- 指定应用的入口点类. --><entry-point class='com.test.smartgwtdemo4.client.smartgwtdemo4' /><!-- 指定可编译代码的路径 --><source path='client' /></module>

修改Maven的配置文件POM.xml,如下图所示:

  1. 双击打开Maven的配置文件pom.xml
  2. 修改配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.test</groupId><artifactId>smartgwtdemo4</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>GWT Maven Archetype</name><properties><!-- 设置GWT版本属性 --><gwt.version>2.7.0</gwt.version><!-- GWT needs at least java 1.6 --><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><!-- 单元测试jUint的版本 --><junit.version>4.11</junit.version><!-- smartgwt的版本 --><smartgwt.version>6.0</smartgwt.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.google.gwt</groupId><artifactId>gwt-servlet</artifactId><version>${gwt.version}</version><scope>runtime</scope></dependency><dependency><groupId>com.google.gwt</groupId><artifactId>gwt-user</artifactId><version>${gwt.version}</version><scope>provided</scope></dependency><dependency><groupId>com.google.gwt</groupId><artifactId>gwt-dev</artifactId><version>${gwt.version}</version><scope>provided</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- 依赖SmartGWT --><dependency><groupId>com.smartgwt</groupId><artifactId>smartgwt</artifactId><version>${smartgwt.version}</version></dependency></dependencies><build><!-- Output classes directly into the webapp, so that IDEs and "mvn process-classes" update them in DevMode --><outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.5.1</version><configuration><source>${maven.compiler.source}</source><target>${maven.compiler.target}</target></configuration></plugin><!-- GWT Maven Plugin --><plugin><groupId>org.codehaus.mojo</groupId><artifactId>gwt-maven-plugin</artifactId><version>2.7.0</version><executions><execution><goals><goal>compile</goal><goal>test</goal><goal>generateAsync</goal></goals></execution></executions><!-- Plugin configuration. There are many available options, see gwt-maven-plugin documentation at codehaus.org --><configuration><extraJvmArgs>-Xms1024M</extraJvmArgs><runTarget>smartgwtdemo4.html</runTarget><modules><module>com.test.smartgwtdemo4.smartgwtdemo4</module></modules></configuration></plugin></plugins></build></project>

提示:对于SmartGWT的jar包,我在Maven的中央仓库中只发现了到2.5版本的,并没有发现最新版的,而现在最新版已经到了6.1版本了。所以我去SmartGWT官网下载了6.0版本的jar包,然后上传到了Nexus私服里面。如果你没有搭建私服,或者你需要搭建一个私服,放心,搭建私服并不困难。

刷新Maven配置,入下图所示:

现在好了,项目已经没有显示错误了,让我们来测试一下项目是否能用吧。

测试项目

安装项目到本地仓库

如下图所示:

  1. 右键选中项目->Run As ->Maven install
  2. 执行要一段时间,一定要耐心等待。有时候会执行失败,再试一次可能就行了。

运行项目

如下图所示:

打开窗口Edit Configuration

打开窗口

  1. 右键选中项目->Run As ->Maven build…
  2. 在目标输入框中输入:gwt:clean gwt:run
  3. 点击Run按钮
  4. 点击按钮:GWT Developement Mode

运行结果

如下图所示:

附录

  1. 如何使用自己的Maven:
    http://blog.csdn.net/wang465745776/article/details/51095556
  2. 如何上传第三方插件到Nexus私服
    http://blog.csdn.net/wang465745776/article/details/52527905
  3. 本教程代码,见我上传的资源

2016-10-17号补充

教程中遗留了,在创建SmartGWT项目的时候,需要引入SmartGWT的一些JS包。在这里,我直接贴出我的smartgwtdemo4.html的内容,代码如下:

<!doctype html><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="smartgwtdemo4.css">
<title>smartgwtdemo4</title>
</head>
<body><!-- 重要 : 你必须设置变量isomorphicDir的值为[MODULE_NAME]/sc/ ,使SmartGWT的资源能够被正确解析--><script type="text/javascript">var isomorphicDir = "smartgwtdemo4/sc/";</script><!--导入SC的核心API--><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Core.js'></script><!--导入 SmartClient --><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Foundation.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Containers.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Grids.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Forms.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_RichTextEditor.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_DataBinding.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Calendar.js'></script><script type="text/javascript"src='smartgwtdemo4/sc/modules/ISC_Drawing.js'></script><!-- 加载主题 --><script type="text/javascript"src='smartgwtdemo4/sc/skins/Enterprise/load_skin.js'></script><script type="text/javascript" lang="javascript"src="smartgwtdemo4/smartgwtdemo4.nocache.js"></script>
</body>
</html>

如何创建一个基于Maven的SmartGWT项目相关推荐

  1. 云效(原RDC)如何构建一个基于Maven的Java项目

    最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会分成5个 ...

  2. 创建一个基于SpringBoot + MyBatis-Plus 的项目

    什么是MyBatis-Plus ? MyBatis-Plus(简称:MP),它是基于MyBatis框架基础上开发的增强型工具,主要是为了简化开发,提高效率. MyBatis-Plus中文网:MyBat ...

  3. 云效(原RDC)如何构建一个基于Composer的PHP项目

    最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会分成5个 ...

  4. 在 IntelliJ IDEA 中创建基本的 Maven 多模块项目

    在 IntelliJ IDEA 中创建基本的 Maven 多模块项目 笔者的环境: Maven 3.6.3 JDK 11 IntelliJ IDEA 2020.2.2 (Ultimate Editio ...

  5. 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

    MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展:利用这种扩展性,我们可以为我们的项目定制一部分的编译细节.NuGet 为我们提供了一种自 ...

  6. Ubuntu下使用Eclipse编译一个基于makefile的C项目

    [背景] 折腾完: [记录]Ubuntu中下载和安装Eclipse 后,就可以去折腾,用Eclipse编译项目了. [折腾过程] 1.继续正常的导入项目: 2. 3. 4.但是只检测出来一个子项目WH ...

  7. HDFS的API调用,创建Maven工程,创建一个非Maven工程,HDFS客户端操作数据代码示例,文件方式操作和流式操作

    1. HDFS的java操作 hdfs在生产应用中主要是客户端的开发,其核心步骤是从hdfs提供的api中构造一个HDFS的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS上的文件 1.1 ...

  8. SVN基于Maven的Web项目更新,本地过程详细解释

    周围环境 MyEclipse:10.7 Maven:3.1.1 概要 最近在做项目,MyEclipse下载SVN基于上述Maven的Web问题,有时候搞了非常半天,Maven项目还是出现叉号,最后总结 ...

  9. 小灰灰的APP学习之路(三)--创建一个简单的问答选择项目

    创建一个简单的问答选择项目 简介 这是一个简单的问答选择项目,界面上显示问题,然后点击"正确"或"错误"按钮,系统给出是否回答正确的提示. 例如: 问题:1+1 ...

最新文章

  1. 获取go语言官方文档的两个方法
  2. SESSION 页面刷新 失效
  3. 【Flutter】Flutter 布局组件 ( 布局组件简介 | Row 组件 | Column 组件 | SizedBox 组件 | ClipOval 组件 )
  4. element 表格单元格内容不换行_实例29_在Word表格中将上下行相同内容的单元格自动合并...
  5. JavaScript 基础,登录前端验证
  6. 客户服务器结构的数据库系统,客户服务器结构的数据库的例子
  7. javaweb----DAO模型设计
  8. 第六次课作业(质量管理、项目人力资源管理)
  9. sdram 时钟相位_零基础学FPGA (二十五)必会! 从静态时序分析到SDRAM时序收敛(下篇)...
  10. vscode 编辑器常用快捷键
  11. (三)SpringMVC实现
  12. SpringData+JPA+mysql, cannot be null when ‘hibernate.dialect‘ not set
  13. 闪退没由报错_使命召唤:(cod16)出现的闪退问题以及解决办法
  14. Linux sed 批量替换多个文件中的字符串【转载】
  15. 阿里资深技术专家:35岁IT职场人的8个经验总结!
  16. 修复漏洞显示连接服务器失败,服务器安全狗漏洞补丁失败怎么办
  17. 74ls175四人抢答器电路图_用数字电路实现四人抢答器
  18. MikroTik(RouteOS)有线路由器快速设置教程
  19. 公众号运营必备三大神器,满足你的所有需求
  20. ajax、promise、react、缓存笔记记录

热门文章

  1. 基于Springboot的超市订单管理系统设计与实现
  2. 面向B2C电子商务系统的创新物流跟踪解决方案
  3. 清华大学出版社配套资料即密码获取方式
  4. 习题7.9 编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果
  5. 三个朋友圈营销小技巧
  6. 索引失效的场景有哪些?索引何时会失效?
  7. 诺基亚8208电信版java_诺基亚8208等5款电信天翼3G手机试玩
  8. 地图选点 php,百度地图选点–Bootstrap模态框(Modal)插件
  9. PTA 7-9 藏尾诗
  10. 概率论阶段测评计算机,概率论与数理统计(计算机)