IDEA中WEB项目结构和Artifacts设置方式

 更新时间:2026年06月27日 15:09:39   作者:人類補水計画  
本文详细介绍了Maven项目结构设置及正确Artifacts配置方法,包括IDEA项目结构设置、文件夹类型配置及打包发布步骤,帮助开发者实现高效项目部署

公司的WEB项目结构一直比较随意,没有统一的规范,新增项目也是直接用旧的项目文件夹拷贝过去修改,时间长了以后项目文件结构混乱,研究了半天终于找到了(可能)正确的目录结构设置,能够直接输出正确结构的Artifacts可直接部署。

I.开发工具

IDEA

II.项目结构

【更新】maven推荐目录结构:

  |-->pom.xml           ---->pom文件
  |-->src               ---->源码包:
  	   |-->main           ---->源码:
            |-->java           ---->java源码
            |-->resources      ---->配置文件
            |-->webapp    ---->app应用文件
                 |-->WEB-INF
                      |-->web.xml
                 |-->index.jsp
       |-->test           ---->测试源码:
            |-->java           ---->java测试源码
            |-->resources      ---->测试配置文件

我的目录结构,就这样吧懒得改了。。

项目文件夹
├─lib
├─src
│  └─main
│      ├─java
│      └─resources
└─web
    └─WEB-INF
            web.xml

III.设置文件夹的类型

打开IDEA顶部菜单栏 - File - Project Structure

设置Project

Project compiler output: 标识的是整个项目的生产环境资源输出目录,正确设置以后会包括编译后的class文件、lib文件、前端文件等。

输出目录文件夹名字随意:项目文件夹\target\

设置Modules

Sources

src目录为Sourcessources目录为Resources(如果有)

Paths

Compiler output选择lnherit project compile output path(通常是默认选中)

设置Libraries

选择“+” - Java - 选择lib文件夹即可

设置Facets

src\main\web\WEB-INF\web.xml如果不存在,需要手动创建。

选择“+” - Web - 双击选择当前项目

  • Deployment Descriptors选择src\main\web\WEB-INF\web.xml文件
  • Web Resource Directories选择src\main\web目录

项目中的前端文件:HTML、CSS、JS、JSP等放在WEB目录下即可。

设置Artifacts

根据各自项目部署方式自行选择

选择“+” - Web Application: Exploded - From Modules… - 选择当前项目即可。

  • Name: 指定打包输出目录的名称。
  • Type: 指定打包方式,我们公司使用的是Web Application: Exploded
  • Output directory: 会自动指向到target\artifacts下,可以自行设置项目打包输出目录。

IV.打包发布

把java文件、前端文件都准备好了以后,选择IDEA顶部工具栏 - Build - Build Artifacts…,指定的输出目录下会生成项目文件,包含前端文件、包含lib和class类文件的WEB-INF。

直接用这个 _war_exploded 文件夹部署到服务器上即可。

遇到的坑

lib包在WEB-INF下,一次部署项目时有个jar包识别不到,部署失败,把lib文件夹拷贝一份放到WEB-INF上一级目录,就是项目根目录下才解决了问题部署成功。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java多线程下解决数据安全问题

    Java多线程下解决数据安全问题

    这篇文章主要介绍了Java多线程下解决数据安全问题,本文使用代码进行讲解,可供大家学习参考
    2021-08-08
  • Java C++题解leetcode817链表组件示例

    Java C++题解leetcode817链表组件示例

    这篇文章主要为大家介绍了Java C++题解leetcode817链表组件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Java使用pdfbox实现给pdf文件加图片水印

    Java使用pdfbox实现给pdf文件加图片水印

    有时候需要给pdf加水印,市面上工具都是收费的要会员,还是自食其力吧;尝试过 spire.pdf.free 那个超过10页就不行了!所以本文还是使用了pdfbox,感兴趣的可以了解一下
    2022-11-11
  • Java实现权重随机获取值或对象的方法

    Java实现权重随机获取值或对象的方法

    这篇文章主要介绍了Java实现权重随机获取值或对象的方法,treeMap是一种基于红黑树实现的有序映射表,提供了一系列的方法来操作映射表中的元素,其中tailMap方法是用于返回映射表中大于或等于给定键的部分视图,需要的朋友可以参考下
    2023-11-11
  • Spring中@Validated和@Valid区别浅析

    Spring中@Validated和@Valid区别浅析

    @Valid是javax.validation里的, @Validated是@Valid 的一次封装,是Spring提供的校验机制使用,下面这篇文章主要给大家介绍了关于Spring中@Validated和@Valid区别的相关资料,需要的朋友可以参考下
    2022-04-04
  • mybatis使用foreach语句实现IN查询(三种)

    mybatis使用foreach语句实现IN查询(三种)

    这篇文章主要介绍了mybatis使用foreach语句实现IN查询(三种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Spring自定义配置Schema可扩展(一)

    Spring自定义配置Schema可扩展(一)

    本教程主要介绍如何扩展Spring的xml配置,让Spring能够识别我们自定义的Schema和Annotation,,需要的朋友可以参考下
    2016-01-01
  • Java实现递归删除菜单和目录及目录下所有文件

    Java实现递归删除菜单和目录及目录下所有文件

    这篇文章主要为大家详细介绍了Java如何实现递归删除菜单和删除目录及目录下所有文件,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-03-03
  • Java使用Redis实现微博热搜功能

    Java使用Redis实现微博热搜功能

    在社交平台上,热搜功能是一个非常重要的组成部分,它展示了当前最热门的话题,帮助用户迅速了解最受关注的事件,Redis 是一个高性能的键值存储系统,通常用于缓存和实时数据存储,本文将通过 Java 结合 Redis 实现一个简化版的微博热搜功能,需要的朋友可以参考下
    2024-12-12
  • java中使用xls格式化xml的实例

    java中使用xls格式化xml的实例

    这篇文章主要介绍了java中调用xls格式化xml的实例的相关资料,需要的朋友可以参考下
    2017-07-07

最新评论