使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
安装Eclipse插件——Buildship
什么是Buildship?
Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务。
Eclipse上安装Buildship
建议直接去Eclipse market处下载,简单方便,如下图:
Buildship的更多信息
请参考以下链接,有教程,比较简单,
主要内容:
如何导入Gradle工程,
如何创建Gradle工程,
如何执行Gradle任务,
等。。。
http://projects.eclipse.org/projects/tools.buildship
http://www.vogella.com/tutorials/EclipseGradle/article.html
安装Eclipse插件——Minimalist Gradle Editor【可选】
主要作用是方便编辑gradle文件,提供语法高亮功能,另外该插件也非常精简,大小小于50k。
高亮效果及安装方式如下图:
Gradle安装
官网下载Gradle安装包,如下链接
http://services.gradle.org/distributions
我下载的是gradle-2.14.1-bin.zip包,下载后解压到硬盘路径即可,想配环境变量的可以配置下,既然打算用Eclipse集成Buildship了,我也就懒得配置了。
Eclipse上创建Gradle工程
这个我稍微翻译一下,最好直接参考官方文档:
1、通过File ▸ New ▸ Other… 菜单入口找到创建Gradle Project选项,如下图:
点击下一步,输入工程名字,工程位置,以及所属的工作集(可选,用于工程分组),
点击下一步,如下图所示,这里我们选择自己的Gradle本地安装路径,如下图:
在以上步骤中,点击完成按钮,会触发gradle init --type java-library
命令的执行,并导入该工程到Eclipse IDE中;
点击下一步可预览即将创建的Gradle工程,如下图,
创建好的工程
Eclipse上导入Gradle工程
很简单,跟平常工程的导入类似,只不过工程类型选择导入Gradle Project而已,可参考以下链接:
http://www.vogella.com/tutorials/EclipseGradle/article.html#import-an-existing-gradle-project
已有工程转为Gradle工程
工程右键,配置->Add Gradle Nature即可,如果没有Gradle相关的文件,可以执行gradle init命令生成:
创建一个Gradle Web工程及相关配置
首先,Eclipse上创建一个Dynamic Web project,然后将其转成Gradle工程,可参考前面的步骤;
然后,改造下工程目录,如下图,跟maven的目录一样,另外把resources目录添加到构建路径下,
最后主要就是build.gradle文件的配置了
我这边主要用了三个插件,配置如下,
- war用于打包,
- org.akhikhl.gretty提供jetty、tomcat等容器的支持,
- org.hidetake.ssh提供远程服务器登陆,文件传输,命令执行等支持,
相关插件官方文档都比较完善。
buildscript{
repositories {
mavenLocal()
jcenter()
maven{ url 'http://maven.d.com/content/groups/public/'}
mavenCentral() }
dependencies {
classpath 'org.hidetake:gradle-ssh-plugin:2.6.0'
classpath 'org.akhikhl.gretty:gretty:+'
}
} apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
apply plugin: 'org.hidetake.ssh' gretty {
servletContainer = 'tomcat7'
contextPath = '/dss'
//httpPort = 8080
fastReload = false
recompileOnSourceChange = false
reloadOnClassChange = false
reloadOnConfigChange = false
reloadOnLibChange = false
enableNaming = true
} ssh.settings {
knownHosts = allowAnyHosts
} remotes {
deployServer {
host = 'XX.XX.XX.XX'
user = 'XXXX'
password = 'XXXXXX'
}
}
另外可以配下工程信息:
group 'com.cetiti.epdc'
def artifactid = "dss"
//version '0.1.0-SNAPSHOT'
description = """Gradle WebApp of dss"""
buildDir = 'target
依赖查找仓库:
repositories {
// Use 'jcenter' for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
mavenLocal()
jcenter()
maven{ url 'http://maven.d.com/content/groups/public/'}
mavenCentral()
}
依赖配置:
dependencies {
// The production code uses the SLF4J logging API at compile time
compile "org.slf4j:slf4j-api:1.7.21"
//compile "org.slf4j:slf4j-log4j12:1.7.21"
compile "log4j:log4j:1.2.17"
compile "com.google.code.gson:gson:2.6.2"
compile "org.apache.commons:commons-lang3:3.4" compile "org.springframework:spring-context:3.2.16.RELEASE"
compile "org.springframework:spring-web:3.2.16.RELEASE"
compile "org.springframework:spring-webmvc:3.2.16.RELEASE"
compile "org.springframework:spring-tx:3.2.16.RELEASE"
compile "org.springframework:spring-context-support:3.2.16.RELEASE"
compile "org.springframework:spring-jdbc:3.2.16.RELEASE" compile "org.aspectj:aspectjweaver:1.8.7"
compile "com.alibaba:druid:1.0.15"
compile "ojdbc:ojdbc:6"
compile "org.mybatis:mybatis:3.2.8"
compile "org.mybatis:mybatis-spring:1.2.5"
compile "org.jasig.cas.client:cas-client-core:3.4.1"
compile "com.cetiti.common:cetiti-common:0.1.0"
compile "org.quartz-scheduler:quartz:1.8.6" compile 'javax.servlet:servlet-api:2.5' // Declare the dependency for your favourite test framework you want to use in your tests.
// TestNG is also supported by the Gradle Test task. Just change the
// testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
// 'test.useTestNG()' to your build script.
testCompile 'junit:junit:4.12'
}
添加自定义任务,我这里简单的写了四个任务,主要做以下几件事,关闭tomcat、删除war包及目录、拷贝文件、启动tomcat:
task shutdownTomcat() << {
ssh.run {
session(remotes.deployServer) {
println 'shut down tomcat...'
executeScript '''#!/bin/sh
cd /usr/local/dss-tomcat-7.0.47/bin
./shutdown.sh
'''
}
}
} task del(dependsOn:shutdownTomcat) << {
ssh.run {
session(remotes.deployServer) {
println 'start deleting...'
executeScript '''#!/bin/sh
rm -rf /usr/local/dss-tomcat-7.0.47/webapps/dss
rm -f /usr/local/dss-tomcat-7.0.47/webapps/dss.war
'''
}
}
} task copy(dependsOn:del) << {
ssh.run {
session(remotes.deployServer) {
println 'start copying war...'
put from: buildDir.toString() + '/libs/dss.war', into: '/usr/local/dss-tomcat-7.0.47/webapps'
}
}
} task deploy(dependsOn:copy) << {
ssh.run {
session(remotes.deployServer) {
println 'start tomcat...'
execute '/usr/local/dss-tomcat-7.0.47/bin/startup.sh'
}
}
}
执行Gradle任务
执行Gradle Task视图里的任务:
Eclipse IDE上打开Gradle Task视图,不知道为什么,我这边添加了相关插件之后,任务列表不会马上显示,需要重启Eclipse,可能是Buildship的Bug。
执行自定义任务:
工程右键,run as,打开运行配置,输入命令即可
持续集成环境Jenkins配置
首先要安装jenkins的gradle插件,我这里假设已经安装好了,不知道怎么安装的参考网络,
1、选择构建一个自由风格的软件项目
2、配置,很简单,见图:
使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置的更多相关文章
- java web工程的错误页面的简单配置
jsp页面,本身服务器也会将该页面翻译成一个servlet页面,所以请求该页面就会有可能出现错误的情况,就会出现下面类似的页面 这样给客户看到并不友好. 1.jsp页面<%@ page %> ...
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- 使用Docker搭建Jenkins+Docker持续集成环境(自动化构建发布部署)
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...
- Docker 结合Jenkins 构建持续集成环境
Docker 结合Jenkins 构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...
- 使用IDEA创建一个Maven Web工程:无法创建Java Class文件
今天用IDEA新建了一个maven web工程,项目目录是这样的: 在新创建一个Java class 文件时,却没有Java class功能,无法创建,如图: 解决方案: 选择 File——>P ...
- Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- [转]Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- 使用 maven 创建 java web 工程
本文主要讲述使用 maven 命令行的形式来创建 java web 工程 开发环境 jdk 1.7 maven 3.5.0 spring 3.2 tomcat 7 eclipse Mars Rele ...
- java web工程的配置文件
java web工程的配置文件 1.工程(源码依赖管理) 2.代码生成管理: 3.会话管理:servlet: 4.应用管理: 5.(分布式)资源管理:数据.数据库连接等. pom:源码管理工具 位置: ...
随机推荐
- 利用T4模板生成ASP.NET Core控制器的构造函数和参数
前言 在ASP.NET Core中引入了DI,并且通过构造函数注入参数,控制器中会大量使用DI注入各种的配置参数,如果配置注入的参数比较多,而且各个控制器需要的配置参数都基本一样的话,那么不断重复的复 ...
- win10系统iis下部署搭建https (ssl/tls)本地测试环境
有时想要把公司的某些XX项目部署成https站点,是为了在传输层加密传输,防止他人嗅探站点重要数据信息,平常我们使用的http方式都是明文方式传输的很不安全,容易被他人窃取.而有些时候要在本地搭建ht ...
- WPS添加页码不是从首页开始
A.页码从第二页开始 "插入"--"页码"--"格式"--不选"续前页"--"起始页码"设为0 &q ...
- Firemonkey 移动平台 Form 显示使用 ShowModal 范例
procedure TForm1.Button1Click(Sender: TObject); begin Form2 := TForm2.Create(Self); Form2.ShowModal( ...
- 第 26 章 CSS3 动画效果
学习要点: 1.动画简介 2.属性详解 3.简写和版本 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS3 的动画效果,可以通过类似 Flash 那样的关键帧模式控制运行. 一.动画简介 CSS ...
- JS疑难点和GC原理
js解析与序列化json数据(一)json.stringify()的基本用法: 对象有两个方法:stringify()和parse().在最简单的情况下,这两个方法分别用于把JavaScript对象序 ...
- 一次Debug过程的思考
前一段时间,部门接入了新业务,由于业务量小,架构非常简单,采用了最简单的LNMP架构,整个项目是交给一个刚毕业的RD负责的,这是背景. 上线前半天,服务平稳运行.下午的时候,开始收到大量报警:No h ...
- Visual Studio Code 使用 Typings 实现智能提示功能
前言 我们知道在IDE中代码的智能提示几乎都是标配,虽然一些文本编辑器也有一些简单的提示,但这是通过代码片段提供的.功能上远不能和IDE相比.不过最近兴起的文本编辑器的新锐 Visual Studio ...
- Bootstrap源码分析之nav、collapse
导航分析(nav): 源码文件:_navs.scss:导航模块Mixins/_nav-divider.scss:分隔线Mixins/_nav-vertical-align.scss:垂直对齐 1.只是 ...
- 使用 WordPress 主题制作的20个精美网页
WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用 PHP 语言和 MySQL 数据库开发的.用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客.这 ...