博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置
阅读量:7189 次
发布时间:2019-06-29

本文共 5149 字,大约阅读时间需要 17 分钟。

安装Eclipse插件——Buildship

什么是Buildship?

Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务。

Eclipse上安装Buildship

建议直接去Eclipse market处下载,简单方便,如下图:

Buildship的更多信息

请参考以下链接,有教程,比较简单,

主要内容:

如何导入Gradle工程,

如何创建Gradle工程,

如何执行Gradle任务,

等。。。

安装Eclipse插件——Minimalist Gradle Editor【可选】

主要作用是方便编辑gradle文件,提供语法高亮功能,另外该插件也非常精简,大小小于50k。

高亮效果及安装方式如下图:

Gradle安装

官网下载Gradle安装包,如下链接

我下载的是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而已,可参考以下链接:

已有工程转为Gradle工程

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

创建一个Gradle Web工程及相关配置

首先,Eclipse上创建一个Dynamic Web project,然后将其转成Gradle工程,可参考前面的步骤;

然后,改造下工程目录,如下图,跟maven的目录一样,另外把resources目录添加到构建路径下,

最后主要就是build.gradle文件的配置了

我这边主要用了三个插件,配置如下,

  1. war用于打包,
  2. org.akhikhl.gretty提供jetty、tomcat等容器的支持,
  3. 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、配置,很简单,见图:

本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/5872313.html,如需转载请自行联系原作者

你可能感兴趣的文章
VMware - Oracle Linux 7.3 无法返回虚拟磁盘UUID
查看>>
Stanford parser学习:LexicalizedParser类分析
查看>>
Java之谜 —— 来自Neal Gafter的演讲
查看>>
js压缩反压缩
查看>>
jdbc.properties 包含多种数据库驱动链接的版本。
查看>>
mac 安装mysql
查看>>
Event Managers
查看>>
14-python-函数
查看>>
Android HandlerThread详解
查看>>
兼职开发悟出的点点滴滴
查看>>
ConCurrentHashMap(基于jdk1.8源码)(转载来源https://segmentfault.com/a/1190000014380257)...
查看>>
总结一些知识点(附链接) 四
查看>>
笔试题①
查看>>
js 对象
查看>>
JavaScript 闭包
查看>>
Redis进阶学习笔记
查看>>
汉诺塔问题
查看>>
thinkphp路径替换
查看>>
安装apache
查看>>
httpd实现基于用户的访问控制
查看>>