Spring boot + Gradle + Eclipse打war包发布总结

首先感谢两位博主的分享

http://lib.csdn.net/article/git/55444?knId=767

https://my.oschina.net/alexnine/blog/540651


buildscript {
    ext {
        springBootVersion = ‘1.5.2.RELEASE‘
    }
    repositories {
        maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/‘ }
        jcenter()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

group ‘com.gzkit‘
version ‘1.0.1-SNAPSHOT‘

apply plugin: ‘java‘
apply plugin: ‘eclipse‘apply plugin: ‘eclipse-wtp‘
apply plugin: ‘org.springframework.boot‘
apply plugin: ‘war‘

compileJava {
    options.encoding = ‘UTF-8‘
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

sourceCompatibility = 1.7
targetCompatibility = 1.7

[javadoc, compileTestJava]*.options*.encoding = ‘UTF-8‘

repositories {
    mavenLocal()
    maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/‘ }
    jcenter()
}

configurations {
    provided
    //compile.exclude module: "spring-boot-starter-tomcat"
    //compile.exclude group: ‘org.apache.tomcat‘
    //compile.exclude group: ‘org.apache.tomcat.embed‘
    all*.exclude module: ‘spring-boot-starter-logging‘
}

ext {
    shiroVersion = ‘1.3.2‘
}

dependencies {
    provided(‘org.springframework.boot:spring-boot-starter-web‘){
        exclude module: "spring-boot-starter-tomcat"
    }
    compile(‘org.springframework.boot:spring-boot-starter-freemarker‘)
    compile(‘org.springframework.boot:spring-boot-starter-undertow‘)
    compile(‘org.springframework.boot:spring-boot-starter-log4j2‘)
    compile(‘org.springframework.boot:spring-boot-starter-mail‘)
    //compile(‘org.springframework.boot:spring-boot-starter-data-redis‘)

    // spring session
    //compile(‘org.springframework.session:spring-session‘)

    // apache shiro
    compile("org.apache.shiro:shiro-core:$shiroVersion")
    compile("org.apache.shiro:shiro-web:$shiroVersion")
    compile("org.apache.shiro:shiro-spring:$shiroVersion")
    compile("org.apache.shiro:shiro-ehcache:$shiroVersion")

    // mybatis support
    compile(‘org.mybatis.spring.boot:mybatis-spring-boot-starter:1.1.1‘)
    compile(‘tk.mybatis:mapper-spring-boot-starter:1.1.1‘)

    // apache commons
    compile(‘org.apache.commons:commons-lang3:3.4‘)
    compile(‘org.apache.commons:commons-collections4:4.1‘)

    // apache poi (excel/word)
    compile(‘org.apache.poi:poi:3.14‘)
    compile(‘org.apache.poi:poi-ooxml:3.14‘)

    // alibaba datasource
    runtime(‘com.alibaba:druid:1.0.27‘)
    // mysql jdbc driver
    runtime(‘mysql:mysql-connector-java‘)
    // log4j2 needs disruptor to enable async logger
    runtime(‘com.lmax:disruptor:3.3.5‘)
    //compile files(‘libs/common-uams-2.2.4.jar‘)

    testCompile(‘org.springframework.boot:spring-boot-starter-test‘)
}

两个地方要注意

第一是apply plugin: ‘eclipse-wtp‘,用来生成Eclipseweb项目的插件(web-tool-platform)

  如果不加,在server栏里面的Tomcat上右键,选择Add and Remove…中没有可发布的项目,加上运行后去掉也可以,不知道为啥,应该是已经生成Eclipseweb项目的插件(web-tool-platform)

第二是

  

  

主要是添加war包的支持,其次的话就是在spring-boot-starter-tomcat处改为provided。provided和compile的区别在与前者是在调试使用时会加载对应的包,但是 在打包时不会讲对应的包加入到war包的lib中而后者则是两种情况都要调用对应的包。

最后是要修改启动Spring的类

  

public class MonolithicPlatformApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // TODO Auto-generated method stub
        return builder.sources(MonolithicPlatformApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(MonolithicPlatformApplication.class, args);
    }

    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer() {
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                // ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
                ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/static/404.html");
                ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/static/500.html");
                container.addErrorPages(error404Page, error500Page);
            }
        };
    }
}

这里继承SpringBootServletInitializer 并重写其中的configure方法目的是使用Spring框架的Servlet3.0支持。并且允许我们可以配置项目从serclet容器中启动。

修改完成之后就可以启动了

另外配上application.yml的配置

server:
    undertow:
        accesslog:
            enabled: true
            dir: target/log
            pattern: combined
    compression:
        enabled: true
        min-response-size: 1
    port: 8080
    session:
        timeout: 1800 # in seconds

spring:
    datasource:
        url: jdbc:mysql://121.201.97.113:3306/km_lis_new?characterEncoding=UTF-8&useSSL=false
        username: root
        password: Zqit3503
        type: com.alibaba.druid.pool.DruidDataSource # 使用druid数据源
        driver-class-name: com.mysql.jdbc.Driver
        maxActive: 2
        initialSize: 1
    redis:
        host: 192.168.1.104
        #password: redispassword
        port: 6379
        pool:
          max-idle: 100
          min-idle: 1
          max-active: 1000
          max-wait: -1
#        database: 0 # database index used by this connection
#        port: 6379
#        host: 192.168.1.104
#        pool:
#            max-active: 30
#            min-idle: 0
#            max-wait: 1500 # milliseconds
#            max-idle: 20
#        timeout: 2000 # connection timeout in milliseconds
    freemarker:
        check-template-location: true
        content-type: text/html
        expose-request-attributes: true
        expose-session-attributes: true
        request-context-attribute: request
        template-loader-path=classpath: /templates/
        settings:
            locale: zh_CN
            template_update_delay: 0
            tag_syntax: auto_detect
            default_encoding: UTF-8
            output_encoding: UTF-8
            url_escaping_charset: UTF-8
            date_format: yyyy-MM-dd
            time_format: HH:mm:ss
            datetime_format: yyyy-MM-dd HH:mm:ss
            number_format: \#.##
            classic_compatible: true
            template_exception_handler: rethrow # ignore, debug, html_debug, rethrow
            whitespace_stripping: true
        expose-spring-macro-helpers: true
        suffix: .ftl
        charset: UTF-8
        cache: false
    mvc:
        static-path-pattern: /static/**
    messages:
        basename: i18n/ui_messages
    mail:
        host: smtp.qq.com
        username: [email protected]
        password: mjevcothmfqybbib #使用QQ邮箱SMTP服务需要生成授权码,而非QQ密码
        sendTo: [email protected]
        disasterTitle: 手动切换容灾模式
        disasterContent: 会话共享项目-发送邮件功能-手动切换容灾模式~~~~
        normalTitle: 手动切换正常模式
        normalContent: 会话共享项目-发送邮件功能-手动切换正常模式~~~~
        autoTitle: 自动切换运行模式
        autoContent: 会话共享项目-发送邮件功能-自动切换运行模式~~~~
        properties:
            mail:
                smtp:
                    auth: true
                    starttls:
                        enable: true
                        required: true

mybatis:
    config-location: classpath:mybatis-config.xml
    mapper-locations: classpath:mapper/**/*Mapper.xml
    type-aliases-package: com.kmlis.entity
时间: 2024-11-01 13:49:49

Spring boot + Gradle + Eclipse打war包发布总结的相关文章

Spring boot如何打war包发布到tomcat

前言: 平时在使用java做项目开发时,首先想到利用框架来提升开发效率,和提高可维护性.选择spring可以使用ssm(spring框架,springMVC,mybatis),而且企业中应用也比较广泛,然而还是发现,在框架中有很多配置,而且看起来相当繁琐,并且在这些配置中,大部分都属于默认配置,习惯配置.因此spring boot就此诞生,它的主要目的就是实现"0"配置,此处的"0"不是代表没有配置,而是代表极少的配置.并且spring boot还内置了tomcat

spring boot,gradle,redis

今天做spring boot/gradle/redis相关的项目,遇到若干问题,记录如下: spring boot  org.springframework.session.data.redis.RedisFlushMode 这个报错是与redis服务器连接的问题,查看一下在application.properties里写的redis服务器IP是不是错了,改正即可;或者redis服务器启用了protected-mode,运行Redis时使用命令: nohup redis-server --pro

spring boot + gradle + mybatis

使用intelliJ创建 spring boot + gradle + mybatis站点 Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧做.Net的同学问到,我想我也可以写这样一篇.入门Java的人最大的问题是步骤繁琐,不知道如何开始,之前我也建议过我的一个小弟用BlueJ去学Java,可是这个东西学得他很迷茫,根本无法获得成就感,不知道能搞出什么有意思的东西,那我们就来点

Axis2使war包发布为WebService

首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错. 网上找资料的时候看到很多Axis2开发的webservice都是打包成arr格式附带到Axis2框架上发布,这样不能打包成war发布. 整理了一些资料了解了一种可以把Axis2开发的WebService打包成war包发布.     一.环境准备           使用 Axis 来开发 Web

spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题

第一步: 在maven下,将Spring Boot工程由jar转换为war包启动,很简单,将pom.xml文件中的packaging改为war <packaging>war</packaging> 如果你使用Gradle,你需要修改build.gradle来将war插件应用到项目上: apply plugin: 'war'第二步: 产生一个可部署war包的第一步是提供一个SpringBootServletInitializer子类,并覆盖它的configure方法.这充分利用了Sp

Spring Boot gradle

最近有写一个电子订单商务网站,使用JAVA8,SPRING,ANGULARJS对项目使用的技术和大家分享. 第一次写博客,哪有不对需要改正的请联系改正. 因为是项目是我给别人做的无法提供源码见谅,我尽最大努力让大家能看懂. 首先从项目的构建开始,我采用的gradle构建项目,使用的版本是2.4. 开发环境用的IDEA 14,项目数据库使用的是SQL SERVER. Spring Boot 技术文档:http://docs.spring.io/spring-boot/docs/current/re

spring boot项目打包成war并在tomcat上运行的步骤

把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码, 第一种<dependency> <groupId>org.springframework.boot</groupId> <artifact

Apache Ant学习总结(二):使用Ant自动编译JavaWeb项目并打成war包发布到Tomcat中

前言:如题所示,有时我们可能经常需要把JavaWeb项目进行编译,然后打包成war包并发布到Tomacat中进行测试.如果每次都人工进行操作的话,无疑是很麻烦的.这时我们可以通过编写一个自动化的Ant脚本,每次需要发布项目时只需要点击一下就可以完成了,非常方便 测试项目的项目结构如下: Ant脚本build_war.xml: <?xml version="1.0" encoding="UTF-8"?> <project name="ant

使用idea创建springboot项目并打成war包发布到tomcat8上

1.将pom.xml中的打包方式修改为war <groupId>com.borya</groupId> <artifactId>Project</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> 2.在pom.xml中添加依赖,将scope状态修改为provided <dependency> <gr