IDEA使用系列-Project Structure 讲解

之前使用eclipse,然后现在转到IDEA,想要运行web项目,发现自己对于IDEA的使用并不熟练,所以看网上的文章,并做一个记录。

IDEA官方文档:https://www.jetbrains.com/help/idea/discover-intellij-idea.html#IntelliJ-IDEA-editions

目录结构介绍

在这里插入图片描述

project

在这里插入图片描述

Project name:定义项目的名称;
Project SDK:设置该项目使用的JDK,也可以在此处添加其他版本的JDK;
Project language level:这个和JDK的类似,区别在于,假如你设置了JDK1.8,却只用到1.6的特性,那么这里可以设置语言等级为1.6,这个是限定项目编译检查时最低要求的JDK特性;
Project language level:选择要支持的Java语言级别。选定的级别将被用作项目默认值。
可用选项对应于JDK版本:

可用选项对应于JDK版本
1.3普通的旧Java
1.4“断言”关键字
5.0'enum’关键字,自动装箱等
6.0@Override在接口
7.0钻石,ARM,多捕获等
8.0Lambda支持,类型注释等

Project compiler output:项目中的默认编译输出总目录,如图黄色部分,实际上每个模块可以自己设置特殊的输出目录(Modules - (project) - Paths - Use module compile output path),所以这个设置有点鸡肋。

Modules

在这里插入图片描述
在IDEA中Project类似于eclipse的workplace,而module类似于eclipse的project,在IDEA中一个项目中可以有多个子项目(module),每个子项目相当于一个模块。一般我们项目只是单独的一个,IntelliJ IDEA 默认也是单子项目的形式,所以只需要配置一个模块。
(此处的两个项目引入仅作示例参考)
在这里插入图片描述
Name:项目名称
Souces:这里对Module的开发目录进行文件夹分类,就是说这个module里有什么内容,说明了不同性质的内容放在哪里。
注意,这些不同内容的标记代表了一个标准Java工程的各项内容,IntelliJ就是根据这些标记来识别一个Java工程的各项内容的,比如,它会用javac去编译标记为Sources的源码,打包的时候会把标记为Resources的资源拷贝到jar包中,并且忽略标记为Exluded的内容。左边显示的是在选中内容的预览。
Paths:为模块配置编译器输出路径,还可以指定与模块关联的外部JavaDocs和外部注释的位置。
Dependencies:在此选项卡上,您可以定义模块SDK并形成模块依赖关系列表。
依赖列表(勾选表示依赖会传递,即引用该modules的modules也会拥有此依赖)
相关性存储格式,选择用于存储依赖关系的格式(作为IntelliJ IDEA模块或Eclipse项目)。该选项对使用不同开发工具的团队有帮助。
在这里插入图片描述
在这里插入图片描述

每个子项目之下都可以定义它所使用的框架在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Facets

Facets:英文翻译“(事物的)方面特征”, 表示这个 module (项目/模块/组件)有什么特征,比如 Web,Spring 和 Hibernate 等(使用了哪些框架、技术和语言),当你在左边选择面板点击某个技术框架,右边将会显示这个框架的一些设置。功能上于modules的类似。
使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各样的描述符,并存储在适当的位置,等等。
大多数Facets可以无冲突得添加到Module中。
也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添加他们的父Facets,这些Facets也要依赖Intellij IDEA的相关插件是否开启.
例如web项目,他有一个很重要的作用是配置web.xml文件的访问路径和部署root的位置,如图
在这里插入图片描述

又如Spring:在这里插入图片描述

Artifacts

IDEA Artifacts官方讲解
项目的打包部署设置, 在项目配置里面相当重要。

某个module要如何打包,例如war exploded、war、jar等等这种打包形式。某个module有了 Artifacts 就可以部署到应用服务器中了。
jar:Java ARchive,通常用于聚合大量的Java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便分发Java平台应用软件或库;
Artifacts是一个项目资源的组合体。例如,一个已编译的java类的集合,一个已打包的java应用。
Artifacts可以是一个archive文件,也可以是一个包含以下结构元素的目录结构:
– (一个或多个)module的编译Output;
– 包含在module的依赖中的Libraries;
– 资源的集合,如web页面,图片,decriptor文件;
– 其他artifacts;
– 个别文件、目录和archives;

常规设置:
Name :artifact配置的名称,又或是artifact的名称。
Type :artifact的类型
Output directory :当执行build(Build | Build Artifacts)时,artifacts将被放到这个指定的目录下。
Build on make :当build project(Build | Make Project)时,会自动build artifacts。

在这里插入图片描述

  1. Artifact
  2. Artifact名称
  3. Artifact类型
  4. 输出路径(也就是Deployment root部署根目录),项目运行后的输出根目录
  5. 输出根目录,即4指定的地址
    6. 输出目录下的结构层次

在这里插入图片描述
war部署包:
war:Web application ARchive,一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源;
exploded:展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
默认情况下,IDEA的 Modules 和 Artifacts 的 output目录已经设置好了,不需要更改,打成war包的时候会自动在 WEB-INF目录下生成classes,然后把编译后的文件放进去。

当你点击运行tomcat时,默认就开始做以下事情:
1.编译,IDEA在保存/自动保存后不会做编译,不像Eclipse的保存即编译,因此在运行server前会做一次编译。编译后class文件存放在指定的项目编译输出目录下(2.2)
2.根据artifact中的设定对目录结构进行创建;
3.拷贝web资源的根目录下的所有文件到artifact的目录下(2.3)
4.拷贝编译输出目录下的classes目录到artifact下的WEB-INF下(2.2)
5.拷贝lib目录下所需的jar包到artifact下的WEB_INF下;
6.运行server,运行成功后,如有需要,会自动打开浏览器访问指定url。

在这里还要注意的是,配置完成的artifact,需要在tomcat中进行添加:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题

在IDEA编辑器中,有时会出现项目工程目录不显示的情况,如下图:
在这里插入图片描述
产生原因
一般为配置文件*.iml 出错了。

解决途径
方法1:若知道出错的具体位置与原因,用文本编辑器打开*.iml文件,找到出错位置,修复。
方法2:清除配置,重新生成配置。
1)关闭IDEA,
2)删除项目文件夹下的.idea文件夹和*.iml文件
3)重新用IDEA工具打开项目

参考转载:https://blog.csdn.net/fei1234456/article/details/105973849
https://www.jb51.net/article/193817.htm

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值