Spring Boot 之 war 打包示例

在Spring Boot应用程序中,默认package是jar,它部署在嵌入式服务器中。如果要生成war文件以部署在单独的应用程序服务器实例(例如Jboss,Weblogic或tomcat)中,请遵循以下说明。

步骤1)声明package类型“war”

逻辑上的第一步是在pom.xml文件中声明package类型“ war” 。

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd;
  ...
  <packaging>war</packaging>
  ...
</project>

它指示项目的工件类型。请注意,当没有声明package时,Maven会假定工件为默认值:jar

步骤2)将嵌入式服务器相关性范围设置为“提供”

我们可能希望在开发环境中使用嵌入式服务器(例如tomcat),因为它在快速的开发生命周期中很有用,但是我们当然不希望那些服务器jar被包含在最终生成的Maven工件或war文件中。为此,请将嵌入式服务器依赖项的范围设置为“已提供”。

范围“提供”表示您希望JDK或容器在运行时提供依赖项。该作用域仅在编译和测试类路径上可用,并且不可传递。

阅读更多:依赖机制

war package演示

在此演示中,我们使用以下pom.xml

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.how2codex</groupId>
    <artifactId>springbootdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>springbootdemo</name>
    <url>http://maven.apache.org</url>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <repositories>
        <repository>
            <id>repository.spring.release</id>
            <name>Spring GA Repository</name>
            <url>http://repo.spring.io/release</url>
        </repository>
    </repositories>
</project>

现在使用目标运行maven build,clean install它将在下面的目标文件夹中生成项目的war文件。

Spring Boot War Package示例
Spring Boot War package示例

如果您有任何疑问,请在评论区留言,我会一一解答。

 

saigon has written 1445 articles

Leave a Reply