无法为spring-boot Web项目创建war存档

时间:2017-05-12 09:16:55

标签: java spring-boot build.gradle

我已经通过Intellij创建了spring-boot web项目,并且在构建或通过SpringApplication.run()方法启动项目之后无法在任何地方看到我的Web存档。在文档页面上,我发现了应该遵守的三个条款

  1. 生成可部署war文件的第一步是提供SpringBootServletInitializer
  2. 将war插件应用于项目
  3. 确保嵌入式servlet容器不会通过添加来干扰将部署war文件的servlet容器 providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 构建脚本
  4. 我的servlet初始化程序

    public class ServletInitializer extends SpringBootServletInitializer {    
       @Override
       protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
                return application.sources(RegTemplateApplication.class);
            }
    
        }
    

    我的构建脚本

    buildscript {
        ext {
            springBootVersion = '1.5.3.RELEASE'
        }
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'eclipse-wtp'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'war'
    
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
    }
    
    configurations {
        providedRuntime
    }
    
    dependencies {
        compile('org.springframework.boot:spring-boot-starter-data-jpa')
        compile('org.springframework.boot:spring-boot-starter-security')
        compile('org.springframework.boot:spring-boot-starter-web')
        runtime('com.h2database:h2')
        providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
    

2 个答案:

答案 0 :(得分:2)

要组装战争,你应该运行gradle assemble

默认情况下,此命令将从src/main/webapp源创建war工件。 另请查看您的来源是否在该目录中,或者您应该提供webAppDirName属性

请参阅https://docs.gradle.org/current/userguide/war_plugin.html

答案 1 :(得分:0)

我尝试使用以下方式构建:

gradle clean build

并在此目录中找到了Web存档:

./build/libs/build.war

注意:您必须在机器上安装gradle。