如何使用Gradle构建.war文件以进行部署

时间:2019-06-20 22:42:02

标签: spring-boot gradle kotlin java-war

因此,我是第一次使用Spring Boot,它工作得很好,除了我不知道如何构建.war文件以部署到我的个人服务器上。我已经在Spring网站上阅读了十几个或更多个博客文档,但是我只是不知道如何构建.war。

我正在使用intellij,kotlin和gradle。向我指出正确方向的任何帮助将不胜感激。

这是我的gradle文件的样子:

import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.springframework.boot.gradle.tasks.bundling.BootJar
import org.springframework.boot.gradle.tasks.bundling.BootWar

plugins {
    kotlin("plugin.jpa") version "1.2.71"
    id("org.springframework.boot") version "2.1.6.RELEASE" 
    id("io.spring.dependency-management") version "1.0.7.RELEASE"
    kotlin("jvm") version "1.2.71"
    kotlin("plugin.spring") version "1.2.71"

    war


}

apply(plugin = "io.spring.dependency-management")

the<DependencyManagementExtension>().apply {
    imports {
        mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
    }
}



. . . .

dependencies {
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("org.springframework.boot:spring-boot-starter-mustache")
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
    developmentOnly("org.springframework.boot:spring-boot-devtools")
    runtimeOnly("com.h2database:h2")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.getByName<Jar>("jar") {
    enabled = true
}

tasks.getByName<War>("war") {
    enabled = true
}

tasks.getByName<BootJar>("bootJar") {
    classifier = "boot"
    mainClassName = "com.daniel.we_adventurers"
    launchScript()

    manifest {
        attributes("Start-Class" to "com.daniel.we_adventurersn")
    }
}



tasks.getByName<BootWar>("bootWar") {
    classifier = "boot2"
    mainClassName = "com.daniel.we_adventurers"
    launchScript()

    manifest {
        attributes("Start-Class" to "com.daniel.we_adventurers")
        attributes("Main-Class" to "org.springframework.boot.loader.PropertiesLauncher")
    }

}


}

2 个答案:

答案 0 :(得分:1)

假设您已经使用https://start.spring.io/创建了项目,然后只需按照文档来创建war归档文件即可:

https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-wars

如果您没有使用https://start.spring.io/创建它,那么我建议从那里创建一个并将其用作更新当前项目的参考。

答案 1 :(得分:0)

我知道距您的提问已经有一段时间了,而且,由于我遇到了您的问题,我想说您的问题很可能与以下内容有关:

developmentOnly("org.springframework.boot:spring-boot-devtools")

请在Spring Boot Application Deployment Issue处查看我对另一个问题的回答。

它应该指引您正确的方向。