zoukankan      html  css  js  c++  java
  • 使用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文件的配置了

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

    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、配置,很简单,见图:

  • 相关阅读:
    ionic3 覆盖主题色
    sublime text 替换功能使用反向引用 replace with using
    mac 10.10.4 下安装xdebug不了的解决办法
    sublime package control 下载不了插件问题解决
    firefox css3 transform样式 位置偏移问题解决
    从ie9上打开httpwatch
    (转)用CSS为英文和中文字体分别设置不同的字体
    几个常用的dos命令
    moodle常用方法及代码片断
    多对多文件复制粘贴
  • 原文地址:https://www.cnblogs.com/chenpi/p/5872313.html
Copyright © 2011-2022 走看看