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

做者:CODING - 朱增辉html

前言

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

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

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

准备环境

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

安装 JDK

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

若是没有安装,可经过 Homebrew 工具安装,命令以下浏览器

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

其余平台请按照官方指导安装。intellij-idea

安装 Maven

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

若是没有安装,可经过 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 公开源代码仓库 获取。

相关文章
相关标签/搜索