设为首页 收藏本站
查看: 1279|回复: 0

[经验分享] 使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

[复制链接]

尚未签到

发表于 2017-3-1 08:24:38 | 显示全部楼层 |阅读模式
安装Eclipse插件——Buildship
  什么是Buildship?
  Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务。
  Eclipse上安装Buildship
  建议直接去Eclipse market处下载,简单方便,如下图:
DSC0000.jpg

  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。
  高亮效果及安装方式如下图:
DSC0001.jpg


Gradle安装
  官网下载Gradle安装包,如下链接
  http://services.gradle.org/distributions
  我下载的是gradle-2.14.1-bin.zip包,下载后解压到硬盘路径即可,想配环境变量的可以配置下,既然打算用Eclipse集成Buildship了,我也就懒得配置了。

Eclipse上创建Gradle工程
  这个我稍微翻译一下,最好直接参考官方文档:
  1、通过File ▸ New ▸ Other…​ 菜单入口找到创建Gradle Project选项,如下图:
   DSC0002.png
  点击下一步,输入工程名字,工程位置,以及所属的工作集(可选,用于工程分组),
DSC0003.png

  点击下一步,如下图所示,这里我们选择自己的Gradle本地安装路径,如下图:
DSC0004.jpg

  在以上步骤中,点击完成按钮,会触发gradle init --type java-library命令的执行,并导入该工程到Eclipse IDE中;
  点击下一步可预览即将创建的Gradle工程,如下图,
DSC0005.png

  创建好的工程
DSC0006.png


Eclipse上导入Gradle工程
  很简单,跟平常工程的导入类似,只不过工程类型选择导入Gradle Project而已,可参考以下链接:
  http://www.vogella.com/tutorials/EclipseGradle/article.html#import-an-existing-gradle-project

已有工程转为Gradle工程
  工程右键,配置->Add Gradle Nature即可,如果没有Gradle相关的文件,可以执行gradle init命令生成:
DSC0007.png


创建一个Gradle Web工程及相关配置
  首先,Eclipse上创建一个Dynamic Web project,然后将其转成Gradle工程,可参考前面的步骤;
  然后,改造下工程目录,如下图,跟maven的目录一样,另外把resources目录添加到构建路径下,
DSC0008.jpg DSC0009.jpg

  最后主要就是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。
DSC00010.jpg

  执行自定义任务:
  工程右键,run as,打开运行配置,输入命令即可
DSC00011.jpg


持续集成环境Jenkins配置
  首先要安装jenkins的gradle插件,我这里假设已经安装好了,不知道怎么安装的参考网络,
  1、选择构建一个自由风格的软件项目
  2、配置,很简单,见图:
   DSC00012.jpg DSC00013.jpg DSC00014.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348546-1-1.html 上篇帖子: Jenkins插件开发(2)——搭建开发环境 下篇帖子: 配置sonar、jenkins进行持续审查
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表