IntelliJ IDEA导出WAR包详细过程

 更新时间:2026年01月24日 08:58:49   投稿:mrr  
这篇文章主要介绍了IntelliJ IDEA导出WAR包全指南,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

IntelliJ IDEA 导出 WAR 包指南

在 IntelliJ IDEA 中,将项目打包为 WAR 文件主要有以下几种方式,适用于不同的项目类型和构建工具。

特性

社区版 (Community Edition)

终极版 (Ultimate Edition)

费用

免费

付费

主要支持语言

Java, Kotlin, Groovy, Scala 等 JVM 语言

支持所有语言,包括 JavaScript, TypeScript, SQL, PHP, Python, Ruby 等

框架支持

基本的 Java SE 和 Android 开发

全面的企业级框架支持(Spring, Java EE, Hibernate 等)和前端框架(React, Angular, Vue.js)

数据库工具

内置数据库工具

应用服务器集成

支持(如 Tomcat, JBoss)

适用场景

个人开发者、学生、开源项目、标准 Java/Android 开发

企业级应用开发、Web 开发、需要框架和高级工具支持的专业开发者

方法一:使用 Maven 打包(推荐)

这是最标准、最常用的方法,适用于所有 Maven 项目。

确认项目配置

确保项目根目录下有 pom.xml文件。

在 pom.xml中,将 <packaging>标签的值设置为 war

war

配置构建插件

在 pom.xml的 <build>部分配置 maven-war-plugin等插件,例如可以指定 WAR 包名称并忽略缺少 web.xml的警告(适用于 Servlet 3.0+ 项目)。

    your-app-name
            org.apache.maven.plugins
            maven-war-plugin
            3.3.2
                false

执行打包命令

可以通过以下任一方式执行打包:

Maven 工具栏:打开 IDEA 右侧的 Maven 工具窗口,展开项目的 Lifecycle,双击 clean,然后双击 package

终端:在项目根目录下执行命令 mvn clean package

获取 WAR 包

命令执行成功后,WAR 文件将生成在 target/your-app-name.war

方法二:使用 Gradle 打包

对于 Gradle 项目,操作流程类似。

配置 build.gradle

应用 war插件并配置基本信息:

plugins {
    id 'war'
}
war {
    archiveFileName = 'your-app-name.war'
}

执行打包

打开 Gradle 工具窗口,找到项目的 Tasks-> build组,双击 war任务。

方法三:使用 IDEA 的 Artifacts 功能

此方法不依赖构建工具,直接通过 IDEA 构建。

  • 配置 Artifact
    • 打开 File-> Project Structure(快捷键 Ctrl+Alt+Shift+S)。
    • 选择 Artifacts-> +-> Web Application: Archive-> 选择对应的模块。
  • 构建 WAR 包
    • 在主菜单选择 Build-> Build Artifacts...
    • 选择刚才创建的 Artifact,点击 Build

方法四:Spring Boot 项目打包

Spring Boot 默认打包为可执行 JAR,若需部署到外部 Servlet 容器,需打包为 WAR。

  • 修改 pom.xml
    • 设置 <packaging>war</packaging>
    • 排除内嵌的 Tomcat,并将其依赖范围设为 provided,以确保它不会与外部容器的依赖冲突 。
    org.springframework.boot
    spring-boot-starter-tomcat
    provided
  • 修改启动类
    • 使启动类继承 SpringBootServletInitializer并重写 configure方法,这是为了支持在外部的Servlet容器中启动应用 。
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

执行打包

使用 mvn clean package命令打包。

常见问题与技巧

  • WAR 包内容验证:可以使用 jar -tf your-app.war命令查看生成的 WAR 包内部结构是否正确。
  • 格式化代码:在打包前,可以使用 IntelliJ IDEA 的代码格式化功能(Ctrl+Alt+L)来保持代码风格统一,这通过缩排引擎实现,可以调整空格数量、大括号位置等规则 。
  • 多环境配置:对于需要不同配置(如数据库连接)的开发、测试、生产环境,可以利用 Spring Boot 的 profiles功能或 Maven 的 profiles来管理多份配置文件,在打包时指定具体环境 。

到此这篇关于IntelliJ IDEA导出WAR包全指南的文章就介绍到这了,更多相关idea导出war包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Struts 2 配置Action详解

    Struts 2 配置Action详解

    本篇文章主要介绍了Struts 2 配置Action详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • java实现docker镜像上传到harbor仓库的方式

    java实现docker镜像上传到harbor仓库的方式

    这篇文章主要介绍了java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • MybatisPlus处理四种表与实体的映射及id自增策略分析

    MybatisPlus处理四种表与实体的映射及id自增策略分析

    在最近的工作中,碰到一个比较复杂的返回结果,发现简单映射已经解决不了这个问题了,只好去求助百度,学习mybatis表与实体的映射应该怎么写,将学习笔记结合工作碰到的问题写下本文,供自身查漏补缺,同时已被不时之需
    2022-10-10
  • SpringMVC @RequestBody Date类型的Json转换方式

    SpringMVC @RequestBody Date类型的Json转换方式

    这篇文章主要介绍了SpringMVC @RequestBody Date类型的Json转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java开发SSM框架具有rest风格的SpringMVC

    java开发SSM框架具有rest风格的SpringMVC

    这篇文章主要介绍了java开发中如何使SSM框架具有rest风格的SpringMVC实现解析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • java IO数据操作流、对象序列化、压缩流代码解析

    java IO数据操作流、对象序列化、压缩流代码解析

    这篇文章主要介绍了java IO数据操作流、对象序列化、压缩流代码解析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Java使用Jsoup解析html网页的实现步骤

    Java使用Jsoup解析html网页的实现步骤

    Jsoup是一个用于解析HTML文档的Java库,本文主要介绍了Java使用Jsoup解析html网页的实现步骤,可以提取文本、链接、图片等,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • 详解kafka中的消息分区分配算法

    详解kafka中的消息分区分配算法

    kafka有分区机制,一个主题topic在创建的时候,会设置分区。如果只有一个分区,那所有的消费者都订阅的是这一个分区消息;如果有多个分区的话,那消费者之间又是如何分配的呢?本文就来为大家详细讲解一下
    2022-04-04
  • IntelliJ IDEA 2021.1 首个 Beta 版本发布

    IntelliJ IDEA 2021.1 首个 Beta 版本发布

    这篇文章主要介绍了IntelliJ IDEA 2021.1 首个 Beta 版本发布,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java这个名字的来历与优势

    Java这个名字的来历与优势

    Java是Sun公司开发的一种编程语言,Sun公司最初的方向是让Java来开发一些电器装置程序,Java名字的由来,实际上是一个有趣的故事。
    2014-10-10

最新评论