zoukankan      html  css  js  c++  java
  • Gradle | 配置Tomcat插件

    Gradle | 使用Tomcat插件作为Servlet容器

    前述

    Gradle 4.10.2

    使用的插件为bmuschko/gradle-tomcat-plugin.

    使用Tomcat插件

    build.gradle

    以一个Spring MVC项目为测试, 此处使用的是Tomcat9. 注释中给出了说明.

    apply plugin: 'idea'
    apply plugin: 'war' // 引入war插件, 它默认包含java插件
    apply plugin: 'com.bmuschko.tomcat' //tomcat: 插件
    
    
    group 'yag.sample'
    version '1.0-SNAPSHOT'
    
    sourceCompatibility = 1.8
    
    // tomcat: 以下配置会在第一次启动时下载插件二进制文件
    buildscript {
        repositories {
            jcenter()
        }
    
        dependencies {
            classpath 'com.bmuschko:gradle-tomcat-plugin:2.5'
        }
    }
    
    // 配置阿里源
    allprojects {
        repositories {
            maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        }
    }
    
    
    dependencies {
        testCompile group: 'org.testng', name: 'testng', version: '6.14.3'
        runtime 'javax.servlet:jstl:1.1.2' // Servlet容器必需
        compile group: 'org.springframework', name: 'spring-context', version: '5.1.2.RELEASE'
        compile group: 'org.springframework', name: 'spring-beans', version: '5.1.2.RELEASE'
        compile group: 'org.springframework', name: 'spring-core', version: '5.1.2.RELEASE'
        compile group: 'org.springframework', name: 'spring-webmvc', version: '5.1.2.RELEASE'
        
        // tomcat: 将Tomcat运行时库添加到配置tomcat中: (此处为Tomcat9)
        def tomcatVersion = '9.0.1'
        tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
                "org.apache.tomcat.embed:tomcat-embed-logging-juli:9.0.0.M6",
                "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
    }
    
    // tomcat: 一些协议设置
    tomcat {
        httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
        ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
    }
    
    
    
    // UTF-8
    tasks.withType(JavaCompile) {
        options.encoding = "UTF-8"
    }
    

    运行

    在项目根目录中执行gradle tomcatRun:

    访问http://localhost:8080/spring-framework-sample(spring-framework-sample是项目名):

    其他运行命令

    译自官方说明.

    Task Name Depends On Type Description
    tomcatRun - TomcatRun 启动Tomcat实例并将Web应用程序部署到该实例。
    tomcatRunWar - TomcatRunWar 启动Tomcat实例并将WAR部署
    tomcatStop - TomcatStop 停止Tomcat实例
    tomcatJasper - TomcatJasper 运行JSP编译器并使用Jasper将JSP页面转换为Java源代码。

    其他配置

    Tomcat 配置

    以下是一个来自官方项目repo中的配置示例, 更多配置信息见gradle-tomcat-plugin下的说明.

    tomcat {
        httpPort = 8090
        httpsPort = 8091
        enableSSL = true
        contextPath = 'sample-app'
        
        users {
            user {
                username = 'user1'
                password = '123456'
                roles = ['developers', 'admin']
            }
    
            user {
                username = 'user2'
                password = 'abcdef'
                roles = ['manager']
            }
        }
    }
    

    其他Tomcat版本

    来自官方说明.

    Tomcat 6.0.x:

    repositories {
        mavenCentral()
    }
    
    dependencies {
        def tomcatVersion = '6.0.51'
        tomcat "org.apache.tomcat:catalina:${tomcatVersion}",
               "org.apache.tomcat:coyote:${tomcatVersion}",
               "org.apache.tomcat:jasper:${tomcatVersion}"
    }
    

    Tomcat 7.0.x:

    repositories {
        mavenCentral()
    }
    
    dependencies {
        def tomcatVersion = '7.0.76'
        tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
    }
    

    Tomcat 8.0.x:

    repositories {
        mavenCentral()
    }
    
    dependencies {
        def tomcatVersion = '8.0.42'
        tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
    }
    

    Tomcat 8.5.x:

    Please be aware that the dependency tomcat-embed-logging-juli is only required to enable container logging via Log4J 1.x (which is no longer support by the Log4J community). Log4J 2.x can be used for container logging without declaring any extra libraries.

    repositories {
        mavenCentral()
    }
    
    dependencies {
        def tomcatVersion = '8.5.16'
        tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-logging-juli:8.5.2",
               "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
    }
    
    tomcat {
        httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
        ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
    }
    

    Tomcat 9.0.x:

    Please be aware that the dependency tomcat-embed-logging-juli is only required to enable container logging via Log4J 1.x (which is no longer support by the Log4J community). Log4J 2.x can be used for container logging without declaring any extra libraries.

    repositories {
        mavenCentral()
    }
    
    dependencies {
        def tomcatVersion = '9.0.1'
        tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
               "org.apache.tomcat.embed:tomcat-embed-logging-juli:9.0.0.M6",
               "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
    }
    
    tomcat {
        httpProtocol = 'org.apache.coyote.http11.Http11Nio2Protocol'
        ajpProtocol  = 'org.apache.coyote.ajp.AjpNio2Protocol'
    }
    
  • 相关阅读:
    Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析
    Android应用setContentView与LayoutInflater加载解析机制源码分析
    Android图片加载框架Fresco,Glide,Picasso对比分析
    Android加载外部APK资源
    https 真的安全吗,可以抓包吗,如何防止抓包吗
    Android常见的几种内存泄漏
    Android应用结构之LiveData
    Android Jetpack LiveData解析
    android使用socket实现简单的点对点通信
    如何分析解决Android ANR
  • 原文地址:https://www.cnblogs.com/shwo/p/9962441.html
Copyright © 2011-2022 走看看