【溯源】IDEA右击不能创建class类

文章讲述了在IntelliJIDEA中,新建Maven项目后在特定目录无法创建Class类的问题,原因在于未正确设置源码目录类型。解决方法是通过ProjectStructure调整模块的Source、Tests、Resources等类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【溯源】IDEA右击不能创建class类

问题来源:

新建Maven项目后发现无法在src/mian目录下创建class文件(如图1),但是在src/mian/java目录下创建class文件。【注意:观察图1 main 和 Java 的图标颜色】

问题分析:

某个目录右键无法创建Class文件,是由于没有对文件进行标注
详看下文:
1.Sources: 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
2.Tests: 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
3.Resources: 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
4.Test Resources: 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
5.Excluded: 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。

【讲人话】:新创建的项目文件目录类型不是source类型,所以无法创建。
图1 不能创建class文件

解决方法:

(1)选择 File——>Project Structure——>Project Settings——>Modules(如图2)
【先点1(你需要的目录);再点2(你需要的类型)】,再确认Apply
图2 修改目录为source类型
注: 选择存放java文件的位置,将其设置为Sources

观察:

观察图3的位置 1 和 2 的的颜色,都均为source类型了,可对比图 1 的main目录颜色。
图3 标红的位置

测试:

OK可创class文件了。
图4 可创建class文件

### IntelliJ IDEA 中与 Git 溯源相关的插件及功能 #### 一、内置的 Git 追溯功能 IntelliJ IDEA 提供了强大的内置支持来处理 Git 版本控制操作,其中包括追溯历史记录的功能。通过这些功能,开发者能够轻松追踪代码变更的历史。 - **查看提交历史** 用户可以通过 `VCS -> Git -> Log` 菜单打开提交日志窗口,在此窗口中可以看到所有的提交记录以及每次提交的具体更改内容[^1]。 - **比较文件差异** 在提交日志界面双击某次提交,可以查看该提交所涉及的所有文件及其修改详情。此外,还可以右键点击某个文件并选择 `Compare with Local...` 来对比当前工作区中的文件与指定提交之间的区别[^2]。 - **Blame 功能 (Annotate)** Blame 是一种非常实用的功能,它允许用户逐行查看谁最后修改了一段代码,并且提供了链接可以直接跳转到对应的提交位置。要启用这个功能,只需在编辑器里右键目标文件然后选择 `Git | Annotate` 即可[^1]。 #### 二、增强型插件推荐 除了上述基础功能外,还有几个第三方插件可以帮助进一步提升用户体验: - **GitToolBox** - 此插件扩展了标准的日志视图,增加了额外的信息栏比如作者头像、分支名等视觉辅助元素,使得浏览更加直观友好。 - 它还提供了一个选项可以在 commit message 后面自动附加 branch name, 方便团队协作时快速识别上下文环境。 - **Commit Message Helper** - 主要是用来优化撰写高质量 Commit Messages 的过程。它可以依据预定义模板自动生成标准化的消息格式,从而减少人为错误率的同时提高沟通效率。 #### 三、实际应用案例演示 以下是基于 JetBrains 官方文档整理的一个简单例子展示如何利用以上提到的一些特性完成日常开发任务: 假设我们现在有一个需求是要定位某段特定逻辑是从何时引入项目的? 1. 打开想要调查的目标方法所在的; 2. 右键菜单->Git->Show History 查看整个 class 文件的变化历程; 3. 如果范围较大,则继续缩小至具体 method level; 4. 当找到可疑点后,再借助 annotate/blame mode 继续深挖直至锁定确切责任人及时刻节点为止。 ```bash # 假设我们已经知道大概时间段内的几次 key commits id list 如下所示: git checkout abcdefg # 切换回最早的可能版本之一 ./gradlew test # 运行相关单元测试验证行为是否一致 ... ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值