zoukankan      html  css  js  c++  java
  • 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: 554840442@qq.com
            password: mjevcothmfqybbib #使用QQ邮箱SMTP服务需要生成授权码,而非QQ密码
            sendTo: 554840442@qq.com
            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
  • 相关阅读:
    如何看linux是32位还是64位
    Linux下,命令 wget 的使用
    express框架目录结构
    怎么在centos中查看某个目录的树结构?
    CentOS minimal版安装图形界面的步骤(自动获取IP)
    微信小程序项目,实现图书搜索组件完善
    微信小程序项目,实现图书搜索高阶组件:
    微信小程序中使用音频组件以及wx:if和hidden的区别
    微信小程序绑定数据以及自定义指令
    微信小程序定义一个组件
  • 原文地址:https://www.cnblogs.com/onlymate/p/6973323.html
Copyright © 2011-2022 走看看