玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定(上)

简介: 玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定(上)

前言


你好,我是A哥(YourBatman)。


如何给Module模块单独增加依赖?

如何知道哪些Module模块用了Spring框架,哪些是web工程?

IDEA如何打Jar包?打War包?


熟练的正确使用IntelliJ IDEA,是一个“高手”该有的样子,因为那是你的门面。上篇文章 重点介绍了IDEA里最为重要的两个概念:Project项目和Module模块。相信你看完后再也不会把IDEA的Project比作Eclipse的Workspace,并且对IDEA有了一份更深的了解。


本文继续理解IDEA对项目、模块的管理。管理项目是一个IDE的基本功能,但往往最基础的是最重要的更是最容易被忽略的。因此本文是你更好去理解IDEA管理maven结构、gradle结构、Spring Boot项目结构的基础,万丈高楼平地起,它就是这个地基。上层结构再怎么繁繁多变,殊途同归最终都由Project Structure来体现,从而给开发者以几近相同的编码体验。


image.png



本文提纲


image.png


版本约定

IntelliJ IDEA:2020.3.1


正文


Project Structure是一个你开发过程中偶尔/经常会打开,但却很少用心留意的窗口。不同于一般设置窗口,它和项目的紧密度非常的高且有一定理解难度,若设置不当项目可能无法运行甚至无法编码(比如编译报错、jar包找不着等),为此我做件一般人都不愿意做的事,对它进行详解,相信做难事必有所得。


本文基于上文已搭建好的hello项目案例,继续研究其项目结构Project Structure的管理。从结构查看,到修改定制,那么问题来了,如何打开一个Project项目的结构页呢?


如何打开Project Structure?


看似一个简单的操作,里面其实蕴藏着你对IDEA Project和Module的理解,否则势必不知从哪下手。据了解,也许你是多年的程序员,也未必知道从哪下手。


按照一般思维,会鼠标选中hello,然后右键:


image.png


但对不起,右键菜单里并无Project Structure选项。Project Structure顾名思义,是针对Project维度的结构视窗,而你鼠标选中的hello只是个module,所以自然弹出的是对此module的操作菜单喽,而非Project的。也许你可能会讲:我点击了Open Module Settings也打开了Project Structure视窗呀,是的效果上你可能是打开了但道理并非如此,而仅仅是因为把它俩放在了一起(同一视窗)而已。


说明:理解IDEA的Project和Module两大概念,是对IDEA进行一切操作的基础。前文已非常详细(可能是全网最全)的介绍了它俩,可花几分钟前往学习。点这里电梯直达


三种打开方式


要打开一个Project的结构展示窗口,至少有如下三种办法,本文都例举给你。


  1. 顶部菜单File -> Project Structure


image.png


2.点击右上角的快捷按钮


image.png

3.快捷键方式(推荐)


这是我本人最喜欢的方式,至于快捷键是哪个就看你是如何设定的喽,我的快捷键是ctrl + shift + alt + s。


啰嗦一句:建议你操作IDEA多用快捷键,那会大大提高编码的效率,并且看起来像高手。基本上记住50个左右快捷键就够用了,长期以往成了肌肉记忆后这就是你的核心竞争力之一了


打开hello项目的结构页如下图所示:


image.png

解释:为何不需要鼠标选中项目?


对于这个动作,敏感的你是否有发现:打开项目结构并不需要鼠标选中任何东西(快捷键随意使用),也就是说鼠标失焦状态都没问题,何解呢?


回答这个问题并不难,前提是你已经对IDEA的Project概念烂熟于胸。一个Project对应一个视窗,它们是严格1:1的关系。换句话讲,当前视窗就代表着Project,因此操作本视窗顶部菜单栏就肯定是作用在该Project上,又何须专门选中什么呢?再者,Project只是个逻辑概念,你想选都没得选中的,所以把视窗当作它就好。有没有觉得,这和Java中的this关键字调用特别像?


最后,这个问题的答案是:只要鼠标还在IDEA视窗内(该视窗是活跃窗口),那么对Project就永远就是“选中”状态。


Project Structure项目结构剖析


项目结构视窗已打开,那接下来重点来喽。可以看到它左边的“菜单栏”,共分为三个part:


  • Project Settings:项目设置(最重要),本文详解
  • Platform Settings:平台设置,也叫全局设置。用于管理SDK们(如JDK、Kotlin的SDK等)、全局库。
  • 一般来讲,全局的JDK都会配置在此处,比如我因为经常要做多版本尝试,就管理了多个JDK版本


image.png


  • Problems:问题。一般项目出现了问题都会在此体现(如依赖不一致问题等等),总之问题数量一致让它是0是最优的

其中Project Settings里面的每个标签页是最常用,最关心的。下面就对它的每个tab页作出解释和使用说明。


Project页情况

image.png



此视窗可以看到Project本身的基础信息。如:名称、SDK版本、语言等级等等,比较简单。


对于此页面的元素,多啰嗦几句:


1.为何是SDK版本而不是JDK版本?答:因为IntelliJ IDEA是JVM平台IDEA,不仅仅支持Java还有其它语言如Kotlin,所以写成SDK更抽象


2.为何指定了SDK还要指定语言等级?答:因为SDK版本并不直接决定语言等级。如你用的JDK 11,但依旧可以把语言等级调为8来进行编译/运行

   1.这是集成开发环境的优势所在,轻松对多环境进行定制化支持


3.SDK和语言等级Project都可指定,作为全局默认

   1.这些配置Module默认集成,但可自行修改自己的。比如module 1使用Java 5编译,module 2使用Java 11编译,这是允许的


Module页情况


Module页可谓是重点中的重点,甚至是最重要。毕竟Module作为实际存在形式,所有的源代码、配置、依赖等都在这里,因此大有可学呀。


image.png


值得注意:Tests测试包里面的是可以访问Sources源码的,但反过来不行。


image.png


image.png


每个模块都能独立管理着自己的依赖,这种关系在模块自己的.iml文件中记录着。


知识点:


  1. Project创建时默认会创建一个同名的Module模块
  2. Module默认沿用Project的SDK、语言等级等设置,当然也可自己指定
  3. 每个Module可自行管理依赖,可以是二方库、三方库…
  4. 本模块的依赖情况默认存储在项目的{moduleName}.iml文件里


新增依赖


既然Module可以自行管理依赖,那么如何给该模块新增依赖呢?


举个例子,现在需要向hello模块增加一个commons-io jar包依赖,可以点击Dependencies标签页左下角的+号,选择Library:


image.png

然后选择,如果没有就选择New Libarary...创建一个呗(有就直接用就成):


image.png


下面分别演示选择Java和选择From Maven两种不同库的方式:


相关文章
|
2月前
|
Java
可直接编辑jar包的IDEA插件-JarEditor
IDEA自带的反编译插件虽可查看jar包中的class文件,但无法直接编辑。为解决此问题,作者开发了JarEditor插件,可在IDEA中直接编辑jar文件内的class及资源文件,无需解压或手动编译。点击Jar Editor可修改代码,通过Save/Compile保存并编译,Build Jar则将更改写回jar包。该插件简化了jar包编辑流程,提高了开发效率。
185 4
可直接编辑jar包的IDEA插件-JarEditor
|
3月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
1月前
|
Java
IDEA的fxml打开Scene Builder后空白! Scene Builder下载依赖后还是空白不显示 无论如何都不显示,网上的教程试过来了遍还是不显示
本文提供了三种方法来解决IDEA中fxml文件在Scene Builder中打开后显示空白的问题:检查JavaFX是否安装、切换IDEA版本、下载Scene Builder插件。
163 1
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
4月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
457 2
[JarEditor]可直接修改jar包的IDEA插件
|
3月前
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。
|
3月前
|
Java Maven 数据库
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)
这篇文章提供了在IntelliJ IDEA中导入jar包的详细图解过程,包括当IDEA找不到对应类时的解决方法。内容涵盖了未加入jar包时程序报错的情况、加入jar包后成功启动的效果,以及如何解决驱动问题,确保使用正确版本的数据库驱动。
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)
|
3月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
4月前
|
弹性计算 Java Serverless
Serverless 应用引擎操作报错合集之上传自定义JAR包,启动时报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
3月前
|
Java Maven 开发者
"揭秘IDEA的神奇助手:Maven Helper插件,让你轻松驾驭复杂依赖,告别冲突噩梦!"
【8月更文挑战第20天】Maven Helper是一款提升Java开发者工作效率的IDEA插件,它能直观展示项目依赖关系并协助管理。主要功能包括依赖树视图、冲突检测与解决及依赖排除。安装简便,重启IDEA后即用。借助其“Dependencies”面板,开发者可以清晰了解依赖详情,快速定位并解决冲突问题,有效优化项目结构,提升开发效率。
225 0