Java项目结构介绍

普通Java web项目

eclipse开发工具

1、.externalToolBuilders:是自动生成的环境相关的配置信息
2、.setting:是eclipse查看js文件的时候用的,记录了用什么编码方式查看。发布新版本的时候,.settings\文件夹不会被打到.war包里
3、.classpath:项目所用的外部引用包的路径
4、.project:是工程构建配置文件
5、WebContent:WEB程序的根文件夹
WebRoot和WebContent什么区别
这两个没有本质的区别,都是指你的WEB程序的根文件夹,一般我们用MyEclipse的时候创建一个Web Project,就会生成WebRoot文件夹,如果是用普通的eclipse,比如eclipse for javee的那个版本,创建web project的时候会生成WebContent文件夹

1、src:一般存放包和写的类文件
2、webRoot:是存放web信息的目录,CSS、JS、图片(images、pictures)都存放在这里
3、META-INF文件夹以及MANIFEST.MF文件:相当于一个信息包,目录中的文件和目录获得java平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务。(manifest.mf文件,在用jar打包时自动生成。)
4、WEB-INF:WEB-INF是用来存储服务端配置文件信息和在服务端运行的类文件的,它下面的东西不允许客户端直接访问的
5、/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
6、 /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
7、/WEB-INF/classes/:包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
8、/WEB-INF/src/:源码目录,按照包名结构放置各个Java文件。
9、 /WEB-INF/database.properties:数据库配置文件
10、 /WEB-INF/tags/:存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。
11、/WEB-INF/jsp2/:与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。

idea开发工具

1、.iml:是 intellij idea的工程配置文件。
2、.Idea:存放项目的配置信息,包括历史记录,版本控制信息等。


普通web项目中,在webapp/WEB-INF下面还会有 个lib目录,用来存放项目用到的所有jar包,它们也是属于classpath的部分
lib中添加jar包,具体添加方法看:点击查看

maven项目

eclipse开发工具


1、在顶级目录上是工程的描述文件pom.xml :用来配置maven jar包信息。
2、第一个红色箭头的src:Src目录包含所有工程的源码文件,配置文件,资源文件等等。
它下面的子目录一般包含main(主要的工程源文件),test(测试文件),site(项目站点文件)
3、src/main/resources:负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。
4、src/test/resources:负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中,为后续的测试做好了准备。
5、第二个红色箭头的src:webapp存放的内容和普通web文件webRoot 内容相似
6、target:target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。target里的所有内容都是maven构建的时候生成的

idea开发工具


1、.idea:是IDEA自动生成 ,.idea文件夹来存放项目的配置信息。其中包括版本控制信息、历史记录等等。如果你不小心删除它,下次它还会自动生成。
2、src:项目的资源总目录,基本所有的操作都在这个文件夹里面进行。
3、main:和src基本作用差不多
4、webapp:这是前端部分,可以在这个目录下创建css、js等文件夹用于存放前端的一些静态文件。以及创建JSP等网页文件。
5、WEB-INF:WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
6、web.xml:web.xml的作用很大,是用来沟通后端的桥梁,这里可以配置一些信息,比如哪些是网站入口(index.jsp),声明404网页等等,以及声明哪些是后端的配置文件。整个web项目就是这样像纽带一样构建起来的。
7、pom.xml:pom.xml主要描述了项目的maven坐标,包依赖关系。我们不需要在手动下载一些jar包,然后手动依赖。

gradle项目

eclipse开发工具

gradle项目不推荐使用eclipse开发工具,这里就不总结了。

idea开发工具


1、.gradle:gradle执行信息
2、.idea:存放项目的配置信息。这个文件夹是自动生成,版本控制信息等,包括历史记录
3、build:项目输出路径,包括编译后的.class文件(classes文件夹下),资源文件(resourcer文件夹下)
4、src:项目源码,包含程序源码和测试源码
5、build.gradle:当前module的gradle配置文件
6、.settings.gradle:针对module的全局配置,它的作用域所包含的所有module是通过settings.gradle来配置
gralde的学习见博客:https://blog.csdn.net/weixin_44044929/article/details/113500871

Java项目结构及路径相关推荐

  1. java lib 不在构建路径里面问题_svn - Eclipse“这个编译单元不在java项目的构建路径上”...

    svn - Eclipse"这个编译单元不在java项目的构建路径上" 我无法在Eclipse上使用自动完成功能. 我正在研究svn上的项目. 我通过进入Eclipse在Eclip ...

  2. 资源不在java项目和构建路径上_编译单元不在Java项目的构建路径上-Maven

    今天,我已经在日食中导入了一个Maven项目.当我尝试自动建议时,当我添加一些代码时,它提示我"编译单元不在Java项目的构建路径上".我没有看到解决此问题的方法,但是都没有解决. ...

  3. 关于JAVA项目中CLASSPATH路径详解

    在dos下编译java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候.classpath就是存放.class等编译后文件的路径. javac:如果当前你要编译的java文件中 ...

  4. Java项目结构的总体理解

    本文简单记录了一下自己对java项目各个层的理解. (清理笔记,hhh) 新版编辑器既好用又不好用,哎,第一次发布的序号都被打乱了.

  5. java classpath 目录_关于JAVA项目中CLASSPATH路径详解

    在dos下编译java程序,就要用到classpath这个概念,尤其是在没有设置环境变量的时候.classpath就是存放.class等编译后文件的路径. javac:如果当前你要编译的java文件中 ...

  6. JAVA项目中classpath路径详解

    classpath是什么路径? 1.classpath指的是类路径,也就是编译之后的target文件夹下的WEB-INF/class文件夹. 2.resources文件夹存放的是各种配置文件,当项目被 ...

  7. java项目如何更改路径_Java修改eclipse中web项目的server部署路径问题

    和MyEclipse不一样,在Eclipse中做的Web项目默认是不支持将项目发布到Web服务器上的,会发布到工作空间的某个目录,因此无法在外部启动Tomcat来运行Web项目,只有打开Eclipse ...

  8. java项目中Classpath路径到底指的是哪里?

    1.src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问. 2.WEB-INF/classes目录存放src ...

  9. Maven 快速生成Java项目结构

    Maven使用 archetype 来创建项目.要创建一个简单的 Java 应用程序,我们使用 maven-archetype-quickstart 插件.在下面的例子中,我们将创建一个基于Maven ...

最新文章

  1. android 键盘搜索按钮事件,Android EditText 软键盘搜索事件
  2. flowmap怎么做_Photoshop生成的流动贴图(flowmap)
  3. centOs7上用yum安装软件报错
  4. Java文件能编译成lib吗_Makefile用于将一些.cpp和.h编译成lib
  5. vue 导出_Vue核心知识:8.3 vuex在vue-cli中的应用,文件之间的导出与引入
  6. 安装版win7安装时分区
  7. 1.13编程基础之综合应用_30_1的个数
  8. matlab repmat_利用MATLAB实现KNN
  9. LeetCode 116. Populating Next Right Pointers in Each Node
  10. DevOps技术学习路线图 初阶+中阶+高阶
  11. Linux ab 压力测试工具
  12. android studio gradle下载失败处理
  13. linux libpng dev,linux下实用图形库--libpng下载地址及说明
  14. 通达oa SQL注入day
  15. arcgis更改默认路径
  16. linux 启动流程与文件系统管理
  17. CALL入门篇一:CALL的本质
  18. GaussDB(DWS)介绍
  19. 负数在计算机中表示方法
  20. 数据库连接失败: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

热门文章

  1. 如何让veil uVision5显示行
  2. 入门系列-集成 Autofac
  3. HM-GNN:基于分子-基序异构图神经网络的分子表示学习模型
  4. arduino液位传感器_Arduino 水位检测器/传感器
  5. java 多个线程共享数据_【java并发】多个线程间共享数据
  6. RequireJS - 简介
  7. swiper 效果参数淡入淡出
  8. 如何使用云服务器?3分钟教会!
  9. cesium中实现鼠标拖动实体功能
  10. 【快速打点综合工具 -- ALLiN】