一分钟开始持续集成之旅系列之:Java + GWT

初学GWT-安装GWT 现在进入的项目前端是用叫GXT的技术实现的,所以自己上网学习了一下,做个总结 GWT(Google Web Toolkit),通过GWT可以用Java代码可以编译成优化的Javascript代码。   GWT的运行环境 Java: Oracle Java 2 Runtime Environment 1.5Operating system: Windows Vista/XP/2000, 阅读详情

作者:CODING - 朱增辉

前言

Google Web Toolkit(GWT)是一个开源、免费的 Web 开发框架,通过该框架,您可以使用 Java 构建复杂、高性能的 JavaScript 应用程序。

持续集成指的是,频繁地(一天多次)将代码集成到主干。它的好处主要有两个:(1)快速发现错误。(2)防止分支大幅偏离主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。 —— 阮一峰

本文的示例会创建一个简单的 GWT 应用,并利用 CODING 平台持续集成能力实现自动构建、测试和发布。

准备环境

安装必要的工具,包括 Java、Maven 和 GWT SDK等。这里以 MacOS 为例说明,其他系统请自行搜索。

安装 JDK

GWT 要求 JDK 1.6 或以上版本,在 console 中执行命令 java -version检查是否已安装,输出如下图类似内容,即表示已安装。
java-version

如果没有安装,可通过 Homebrew工具安装,命令如下

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

其他平台请按照官方指导安装。

安装 Maven

通过命令 mvn -v检查 Maven 版本,输出类似下图即表示已安装
maven-version

如果没有安装,可通过 Homebrew工具安装,命令如下

brew instll maven

其他平台请按照官方指导安装

安装 GWT SDK

可以通过 Homebrew工具或者下载 GWT SDK 压缩包安装。写作本文时,GWT 最新稳定版本是 2.8.2。

(1)Homebrew 安装

brew install gwt

默认安装路径为

gwt-dir

(2)下载压缩包安装
为方便大家下载,已将官网 GWT SDK 2.8.2 版本压缩包上传到 CODING 制品库,可通过如下方式下载

curl -L "https://coding-public-generic.pkg.coding.net/demo-gwt/generic/gwt.zip?version=2.8.2" -o gwt-2.8.2.zip

下载后的压缩包解压到任意目录(如 /home/user/gwt-2.8.2),并配置到 PATH环境变量,如下所示

PATH=$PATH:/home/user/gwt-2.8.2/
export PATH

以上任一方式安装后,可执行如下命令测试是否安装成功

webAppCreator

输出如下
gwt-cli-version

Intellij IDEA 开启 GWT 支持

IDEA 默认支持创建 GWT 应用,本文使用命令行工具创建项目,不依赖具体 IDE,通过 IDE 创建 GWT 应用的方式可参见 Intellij IDEA 相关介绍。

步骤一 创建 GWT 应用

使用命令行工具创建 GWT Maven 项目

webAppCreator -out hello -templates maven,sample,readme com.demo.gwt.HelloWorld

create-gwt-project

在 IDEA 中打开上面创建的项目,依次点击:

File --> Open --> hello(项目名)

open-project

打开后可以看到项目目录结构:
project-file

步骤二 运行 GWT 应用

GWT 项目文件主要由四部分组成(见下表),可以根据自己的需要修改,为避免增加复杂度,这里不做修改。

内容说明位置
模块描述符用于配置 GWT 应用,XML 格式src/main/java/com/demo/gwt/HelloWorld.gwt.xml
公共资源GWT 模块引用的文件,如 HTML 页面、CSS 样式或图像src/main/webapp
客户端代码实现应用程序业务逻辑的 Java 代码,GWT 编译器将其转换为 JavaScript,最终在浏览器中运行src/main/java/com/demo/gwt/client
服务端代码可选的,如果应用不需要服务端处理,不用提供src/main/java/com/demo/gwt/server

在 IDEA 菜单栏中选择编辑配置,打开运行配置弹窗,添加 GWT 配置。修改配置名,选择 HelloWorld 模块,然后点击 OK 保存配置并退出弹窗。

create-gwt-config

选择上面创建的 GWT 运行配置,单击运行,IDEA 会自动打开浏览器,运行应用。
open-in-browser

步骤三 利用持续集成进行自动构建、测试、发布

(1)本地初始化 git 仓库
在项目根目录执行 git 初始化命令

git init

git-init

(2)准备 CODING 项目
在 CODING 平台创建项目,选择 DevOps 模板。

project-module

在填写项目基本信息页面,为了使用本地 git 仓库,这里不勾选 启用 README.md 文件初始化项目。

project-setting

上面创建的 CODING 项目没有初始化代码仓库,可以按照指引按照自己的需要进行初始化,这里选择使用命令行推送已存在的仓库。

coding-git-init

根据指引将本地代码仓库推送到 CODING 平台。

git-push

在 构建页面创建新的构建计划,为方便管理构建计划,这里选择使用代码仓库中的 Jenkinsfile。

ci-create

点击使用模板,可根据自己需要选择合适模板,这里选择 简易模板。

ci-module

保存构建计划后,系统会自动将构建模板对应的 Jenkinsfile 推送到仓库,默认为 master 分支。
本地执行 git pull命令拉取代码,修改 Jenkinsfile 文件。我们希望平台可以自动构建、测试,最后发布到制品库,修改后的内容如下所示

def ARTIFACT_ID = ""
def VERSION = ""
pipeline {
  agent any

  stages {
    stage('检出') {
      steps {
        checkout([
          $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[
            url: env.GIT_REPO_URL,
            credentialsId: env.CREDENTIALS_ID
          ]]
        ])

        script {
            def pom = readMavenPom()
            ARTIFACT_ID = pom.getArtifactId()
            VERSION = pom.getVersion()
        }
      }
    }

    stage('构建') {
      steps {
        sh 'mvn package'

        archiveArtifacts(artifacts: "target/${ARTIFACT_ID}-${VERSION}.war", fingerprint: true)
      }
    }

    stage('测试') {
      steps {
        sh 'mvn gwt:test'
      }
    }

    stage('发布到 generic 制品库') {
      steps {
        codingArtifactsGeneric(
            files: "${ARTIFACT_ID}-${VERSION}.war",
            repoName: "${env.GENERIC_REPO_NAME}",
            version: "${VERSION}",
            workspace: "/root/workspace/target"
        )
      }
    }
  }
}

修改后提交并推送到远程仓库,在 构建页面点击 立即构建按钮即可触发构建,也可按需要配置自动构建触发规则,详情见 CODING 帮助文档。构建完成后会收到通知,可以点开构建详情查看详细日志。

build-done

打开 制品库页面可以看到自动发布的文件。
artifact-generic

总结

在本次教程中,我们创建了简单的 GWT 应用,熟悉了 GWT 项目结构及其命令行工具的使用,并且借助 CODING 平台提供的持续集成能力实现了应用的自动构建、测试和发布。CODING 提供的持续集成能力远比教程中展示的要强大,有兴趣的同学可以阅读官方文档详细了解,相信可以为您的工作提供帮助,创造更好的效益。

示例代码可以在 CODING 公开源代码仓库 获取。

CircuitJS1零基础入门:5分钟搞定你的第一个电路仿真(附Arduino扩展指南) 本文为零基础用户提供CircuitJS1电路仿真软件的快速入门指南。这款开源、基于浏览器的工具无需安装,5分钟内即可搭建并运行第一个LED电路仿真。文章详细介绍了从元件放置、参数设置到使用示波器观察波形的完整流程,并特别附上了利用其Arduino扩展功能进行软硬件联合仿真的进阶指南,是电子学习和项目验证的利器。 阅读详情

相关推荐

GWT学习实战教程:从入门到精通

本文还有配套的精品资源,点击获取 简介:GWT(Google Web Toolkit)是由Google推出的开源JavaScript开发框架,它让Java开发者可以使用Java编写Web应用,并自动生成优化的JavaScript代码,运行在客户端。本教程详细介绍了GWT的基础入门、进阶技能以及高级应用,覆盖从安装配置、基础组件使用到复杂RPC通信、性能优化和自定义组件开发等...

weixin_42551310的博客 2808

GWT入门教程

GWT入门教程   准备 需要Java SDK 1.6以上的JDK。 需要Apache Ant   下载和安装 GWT SDK GWT SDK包含了核心库,编译器,和开发web应用需要的开发服务器。将压缩文件gwt-2.6.0.zip解压。 GWT附带了一个命令行实用程序webAppCreator,webAppCreator生成开始一个GWT项目所需要的所有文件,还生成Eclips

科华在线 1万+

全面GWT入门实践项目教程

GWT(Google Web Toolkit)是一个开源的开发工具集,让开发人员使用Java编程语言开发和优化复杂的浏览器端应用程序。它提供了一种创新的方式,将Java代码编译成跨浏览器的JavaScript和HTML。在本章中,我们将深入探讨GWT的核心概念,并通过实战演示如何利用这一技术快速构建高性能的Web前端应用。GWT是一个用于Web前端开发的框架,它能够将Java源代码转换成优化的JavaScript,使得Java开发者能够使用他们熟悉的IDE和调试工具来构建客户端应用程序。

weixin_36296444的博客 662

Java GWT是什么?

Google Web Toolkit(GWT)是一个开源、免费的 Web 开发框架,通过该框架,你可以使用 Java 构建复杂、高性能的 JavaScript 应用程序。 GWT是一个用于构建和优化复杂的基于浏览器的应用程序的开发工具包。它的目标是实现高性能web应用程序的高效开发,而开发人员不必是浏览器兼容性、XMLHttpRequest和JavaScript方面的专家 GWT 是一个开发工具包,用来构建大规模和高性能 Web 应用程序。GWT 用 java 中编写客户端应用程序, 然后将 ...

_ 2914

GWT开发环境JAVA

GWT开发环境

STM32与威纶通触摸屏RS485通信实战:Modbus RTU协议与避坑指南

在工业自动化与嵌入式系统开发中,串行通信是实现设备间数据交换的基础技术。RS485总线凭借其差分信号传输、抗干扰能力强、支持多点通信及长距离传输等特性,成为工业现场广泛应用的物理层标准。其核心原理是利用一对双绞线进行平衡传输,有效抑制共模噪声。在协议层,Modbus RTU作为开放、简洁的主从式应用层协议,定义了统一的数据模型(如线圈、寄存器)和功能码,极大简化了不同厂商设备间的互操作性。结合STM32微控制器的UART外设与威纶通(Weinview)人机界面(HMI),可以构建稳定可靠的监控与控制系统。本

weixin_33925615的博客 328

「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(二)

本文主要介绍如何用MyEclipse生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序,欢迎下载新版IDE体验!

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 777

深入浅出:用状态机搞定FPGA MIG控制器与DDR3的读写时序(附Verilog源码分析)

本文深入解析了如何利用状态机精准控制FPGA MIG控制器与DDR3的读写时序,涵盖Verilog源码实现、关键时序控制点及实战优化技巧。通过状态机设计、跨时钟域处理和带宽优化等方法,有效提升DDR3访问效率,适用于高性能计算和AI加速器等场景。

weixin_26899659的博客 408

YUI 和GWT 优缺点搜集

      今天看了一下午的YUI和GWT的比较,因为项目组还在选是用哪一种技术比较好,哪一种的风险比较小,客户一开始比较偏向于YUI,可是第一个milestone时又说用GWT,于是我就研究了很长时间的GWT,可是第一个milestone完了之后,又让我考虑用哪个技术比较好,真是崩溃了,大体在网上搜了搜资料,没有具体的这两个技术的比较,于是就分开找了找,毕竟,GWT是写Java代码,然后编译成J...

vivian's world 185

Python实现支付宝转账接口

由于工作需要使用python开发一个自动转账接口,记录一下开发过程。 首先需要在蚂蚁金服上申请开通开发者账户,有了开发者账户就可以使用沙箱进行开发了。 在开发之前我们需要在沙箱应用中填写密钥,密钥的获取可以使用阿里提供的工具包自动生成。 前期准备工作完成了,接下来是编写代码部分。主要用到了python-alipay-sdk库,使用pip安装即可,如果安装的过程中遇到问题推荐使用Anaconda...

FanMLei的博客 8516

【点云数据集】整理汇总(自用,更新ing)

涵盖了各种不同的城市场景:教堂、街道、铁路轨道、广场、村庄、足球场、城堡等等。邮件地址:dmich-request@graphics.stanford.edu,内容需包含:1. 您的姓名、头衔或职位,以及所在机构或隶属关系;license比较难获取,目前可获取的人员:(1)目前隶属于大学、工业研究实验室或其他主要机构的已发表过研究成果的研究人员;普林斯顿 ModelNet 项目的目标是为计算机视觉、计算机图形学、机器人技术和认知科学领域的研究人员提供全面、干净的物体 3D CAD 模型集合。

weixin_44392103的博客 796

macOS Office 批量许可证激活流程详解

macOS Office 激活的难点不在操作本身,而在版本组合:系统能装哪个构建、该构建支持哪种许可类型、序列化器是否与安装包匹配。Microsoft-Office-For-MacOS 仓库在 DATA/ 目录下直接收录了从 Office 2011 到 LTSC 2024 的全套 VL 序列化器,并附上官方安装包下载入口和许可证移除、重置工具,你只需按自己的系统版本选对"安装包 + 序列化器"这一

gitblog_00132的博客 173

QT快速配置MSVC2017编译环境(3分钟极简指南)

本文提供了一份3分钟极简指南,帮助开发者快速配置QT的MSVC2017编译环境。通过断网安装、精准勾选组件和配置QT Creator编译器路径等步骤,大幅提升QT开发效率。MSVC2017作为Windows平台高性能C++编译器,特别适合处理大型QT项目,编译速度优势明显。

weixin_30399821的博客 503

5 步快速搭建企业级文档管理平台:OpenKM 开源文档管理系统部署与实战指南

你所在团队的合同是不是还在微信群里传来传去?同一个文件在网盘、邮箱、U 盘里各存了一份,改到"最终版_v8_再也不改版"?如果答案是肯定的,那么你需要的正是一套真正的**文档管理系统**。OpenKM 就是这样一款成熟的开源文档管理系统(DMS),它基于 Java 技术栈构建,把文件上传、权限控制、版本管理、全文搜索、邮件归档等企业级能力集成到同一个平台里。这篇指南会带你从零部署、实战上手到日常运

gitblog_00659的博客 228

嵌入式存储实战:FAL+SFUD+flashDB三件套在STM32上的完整移植指南(附避坑技巧)

本文提供了一套在STM32上完整移植FAL、SFUD与flashDB嵌入式存储框架的实战指南。详细解析了从SPI驱动配置、SFUD设备识别、FAL抽象层分区到flashDB键值数据库初始化的全流程,并分享了关键的避坑技巧与性能优化建议,帮助开发者构建稳定可靠的嵌入式存储系统。

rnn9storyteller的博客 1016

超分辨率重建:ESPCN与SRGAN技术对比

超分辨率重建:ESPCN与SRGAN技术对比​ 人工智能,计算机视觉,大模型,AI,超分辨率重建是一种通过技术手段,将低分辨率图像转换为高分辨率图像的过程。它的目的是恢复低分辨率图像中丢失的细节信息,使图像具有更高的清晰度和视觉质量。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

【译】GWT入门:准备环境

【此系列文章译自:https://developers.google.com/web-toolkit/doc/latest/tutorial/】   一、GWT SDK (命令行工具) 前提 JDK: 下载地址 http://java.sun.com/javase/downloads/ , 下载后安装,并配置Java_Home Ant: 下载地址 http://ant.apache.o...

刘刚的空间 253

redhawk:Low Power Analysis

1.rush current与switch cell 在standby状态下为了控制leakage power我们选择power gating的设计方式,使用power switch cell关闭block/power domain的电源。 power switch的基本介绍可见: 低功耗设计-Power Switch power switch的table中有四种状态,对应block工作、待机和上电,下电。low power analysis主要分析上电的过程。 上电过程可以看做mos电容

m0_61544122的博客 3203

Google Web Toolkit(GWT)是一种允许开发人员使用Java编程语言快速构建和维护复杂但性能高的JavaScript前端应用程序的工具集

2. **使用 MVP 架构**:Model-View-Presenter(MVP)是一种常用的软件设计模式,它可以帮助您将业务逻辑与用户界面分离,从而提高代码的可测试性和可维护性。1. **安装 GWT 插件**:首先,您需要在您的开发环境中安装 GWT 插件。3. **避免过度复杂的数据绑定**:在 GWT 中,数据绑定是一种强大的功能,但如果不加控制地使用,可能会导致性能问题。4. **优化图片和资源**:减少不必要的图片和其他资源的使用,以及优化这些资源的大小,可以提高应用程序的加载速度和性能。

博客域名:borter.blog.youkuaiyun.com 1286

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

gwt sdk 创建 工程

<br />1.配置java<br />2.配置gwt<br />     path:    gwt  的目录<br /> <br /> <br /> <br />命令创建eclipse工程<br />1.applicationCreator<br /> applicationCreator  -eclipse  GWTLogin -out GWTLogin com.gwt.client.GWTLogin<br /> <br /> <br />2.projectCreator<br />  projectC

645

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

GWT开发环境搭建

1,GWT是Google提供的Java开发前框架

senvenks的专栏 4372

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

开始使用时GWT遇到的问题

开发时先要下载gwt-sdk 然后在eclipse中在线安装 Google Plugin for Eclipse 之后在windows-preferences-google-Web ToolKit添加下载好的sdk 就可以新建google的web项目了 1.在使用时如要新建html,先new Module,可以在Google Web ToolKit中找到 再new Entry P

yxs19910622的专栏 992

GWT(Google Web Toolkit)学习

GWT入门学习 syxChina(www.cnblogs.com/syxchina) GWT入门学习  1介绍  2 安装  3 第一个gwt项目  4 gwt 和extjs结合  1介绍 百科名片http://baike.baidu.com/view/358878.htm Google Web Toolkit的缩写,有了 GWT可以使用 Ja

qingzhong_he2010 923

GWT 入门介绍

GWT 入门介绍GWT使用JSON格式的数据通讯  GWT是 Google Web Toolkit的简称。 GWT是一个以Java语言为工具,以类似Swing的方式编写UI组件,之后通过GWT Compiler编译 为JavaScritp和HTML在客户端浏览器中运行的一个开发工具和编程模型。  GWT应用程序有两种方式运行:Hosted Model     在

Struts 2 的专栏 3万+

这10个流行的Java框架,很强!

框架的核心是一组预制代码,优先考虑程序中的易用性和一般可重用性。框架通常包括多种类型的现成代码,如类、函数和 UI 组件,使开发人员能够进一步扩展 Java 的功能。适当的框架使开发人员能够创建可靠且健壮的应用程序,而无需编写和完善每一行代码。此外,许多开发人员使用 Java 测试框架来确保一致和可靠的测试结果。本文将给大家介绍 10 个最流行的 Java 框架。

网络技术联盟站 2792
上一篇: CODING DevOps 系列第六课:IT 运维之智能化告警实践
下一篇: 一分钟开始持续集成之旅系列之:C 语言 + Makefile
腾云 CODING
博客等级 码龄8年 203粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值