IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

文章目录

  • IDEA 如何获取项目的模块数据
  • 从项目源中选择模块加入当前项目中
  • 如何移除项目中的模块
    • 方式一,选择模块的根目录(Content Root),鼠标右键 Remove
    • 方式二,打开【项目结构】窗口,在模块列表中选中模块,点击上方的减号(“-”)来移除项目
  • 从项目源选择没有源码文件的模块加入到项目中(有问题)
    • 如何导入没有源代码根目录的模块(非Java模块)
  • 关于模块的配置文件

IDEA 如何获取项目的模块数据

这里要特别理解一个问题,硬盘上的项目文件必须在 IDEA 的配置文件中,IDEA 才能识别这个文件,而通过 IDEA 添加本地文件(例如添加项目或者添加模块),其实就是把文件的相关路径和属性信息写入到 IDEA 的配置文件中,IDEA 在开启时会去读取相关的配置文件,从而在相关的功能界面上显示该文件的有关信息。

把模块从当前项目中移除(remove),就是把这个模块的配置信息删除了,当然模块的相关文件依旧在硬盘上。所以从硬盘选取模块目录添加到当前项目中,就必须走完整个流程,这样模块的相关信息才会重新写入配置文件中,那么已经写入配置文件的模块,你如果再从硬盘选择添加,IDEA 会提示有关的 .iml 配置文件已经存在了,你是否需要覆盖,你可以选择覆盖或者选择重复使用已存在的配置文件都可以。

实际上项目的模块信息是写入到文件 projectname/.idea/modules.xml 中,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4"><component name="ProjectModuleManager"><!--标签<modules/>内有几个<module/>就表示有几个模块,如果remove模块,则下面对应的<module/>会被删除--><modules><module fileurl="file://$PROJECT_DIR$/encode/encode.iml" filepath="$PROJECT_DIR$/encode/encode.iml" /><module fileurl="file://$PROJECT_DIR$/jdbc/jdbc.iml" filepath="$PROJECT_DIR$/jdbc/jdbc.iml" /><module fileurl="file://$PROJECT_DIR$/servlet-demo/servlet-demo.iml" filepath="$PROJECT_DIR$/servlet-demo/servlet-demo.iml" /></modules></component>
</project>

打开项目时,IDEA 会去读取上面的配置文件,然后在模块列表窗格中显示模块列表,如下图所示:
在这里插入图片描述

从项目源中选择模块加入当前项目中

不论是完全地新建模块还是选择硬盘上已有的模块目录添加,对于 IDEA 而言,都是新建模块,选择模块只是硬盘的文件无需创建而已,但是模块的相关数据同样要重新写入 IDEA 相关的配置文件中。而完全新建模块,只是 IDEA 会先根据用户自定义的内容去调操作系统的相关接口创建文件(目录或者文件),然后再把相关的模块数据写入到配置文件中。

其实任何第三方的文件管理工具的实现原理都是这样的,第三方软件无法将特有的属性添加到操作系统的文件系统中,所以只能把操作系统的文件名称、路径等信息记载下来,然后赋予第三方软件自己特有的属性内容 ,从而在第三方的软件中实现对硬盘上的文件的间接管理。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
上面的操作其实就是让你选择包的根目录,或者叫源代码的根目录(Source Root),通常是 src,在目录 src 下创建包,在包下创建源文件,指定了包的根目录,IDEA 就知道源文件在哪里,于是 IDEA 就把所有的源文件路径作为编译器的参数,编译根据路径找到源文件然后进行编译,而编译好的 class 文件则放在 IDEA 指定的项目根目录下的 out/production/ 目录下面。

说白了,其实 IDEA 就是自动执行下面的编译命令语句:

cd 项目根目录
javac @sourcefiles -d ./out/production/模块名称/

文件 sourcefiles 包含所有的源文件路径,目录 out 则是存放 class 文件的目标目录。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何移除项目中的模块

移除模块,只是将模块从项目中移除,即把文件 modules.xml 中对应的标签删除掉,这样使用 IDEA 打开项目就看不到被移除的模块了,但是模块的文件依旧保存在硬盘中。

方式一,选择模块的根目录(Content Root),鼠标右键 Remove

在这里插入图片描述
在这里插入图片描述

方式二,打开【项目结构】窗口,在模块列表中选中模块,点击上方的减号(“-”)来移除项目

在这里插入图片描述

从项目源选择没有源码文件的模块加入到项目中(有问题)

如果你选择的模块没有源码文件,那么作为模块添加到项目中也不能正常使用,因为在添加模块的过程中需要选择源码文件的根目录,而你的模块下没有源码文件,所以在这个步骤中就出现问题了:
在这里插入图片描述
那么你继续添加后,在模块管理界面中,根本无法配置源码文件的根目录,什么意思?看下图:

在这里插入图片描述

也无法创建包(Package),我选中 src 目录,点击鼠标右键根本看不到 Package:
在这里插入图片描述
目录的颜色也是不同的:
在这里插入图片描述
你可以在【项目管理】窗口选中目录,点击鼠标右键,然后选择【Mark Directory as】–>【Sources Root】:

在这里插入图片描述
标记为【Sources Root】之后,目录的颜色就变成“蓝色”的,此时选中它,然后点击鼠标右键,在【new】菜单下的子项中就可以看到 【Package】了:
在这里插入图片描述
接着你选择包,然后创建类文件,创建完成后再去模块管理界面看下,你会发现还是无法选择模块的 Sources Root :
在这里插入图片描述
我高度怀疑,这是 IDEA 的 bug。

如何导入没有源代码根目录的模块(非Java模块)

创建一个相同名称的模块,在创建过程中会提示是否覆盖已存在的 .iml 文件,选择覆盖即可。
在这里插入图片描述

关于模块的配置文件

你把某个目录当成项目的模块添加到项目中,那么这个模块根目录下面就会自动生成一个 .iml 文件,这个配置文件记载了模块的源码文件的根目录等信息。

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4"><component name="NewModuleRootManager" inherit-compiler-output="true"><exclude-output /><!--指定了内容根目录的位置--><content url="file://$MODULE_DIR$"><!--指定了源文件根目录的位置--><sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /></content><orderEntry type="inheritedJdk" /><orderEntry type="sourceFolder" forTests="false" /></component>
</module>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言明解课后答案,明解C语言 中级篇 第一章答案

练习1-1#include #includeint main() {srand(time(0));int anw rand() % 7;printf("您的签运是:");switch (anw) {case 0:printf("大吉"); break;case 1:printf("吉"); break;case 2:printf("小吉"); break;case 3:printf("吉&q…

java 迁移数据_Java 10迁移建议

java 迁移数据你好&#xff0c;再一次到另一个热点。 我的名字是Java Champions的平台工程师和DevOps专家Peter Pilgrim。 如您所知&#xff0c;Java 9引入了模块系统。 您可能正在将服务迁移到JDK 10或更高版本&#xff0c;或者至少在考虑中。 我对企业的一般建议是&#xff…

IntelliJ IDEA for Mac 如何配置项目模块的源代码根目录_源码文件的根目录

按下组合键 Command ; 打开【项目结构】配置窗口&#xff1b;然后选择左侧菜单栏的【Modules】&#xff1b;然后在右侧的模块列表中&#xff0c;选择你要配置的模块&#xff1b;接着选择右侧界面中的【Sources】标签。 首先添加内容根目录&#xff08;Content Root&#xff0…

c语言动态内存分配数组,【C】动态内存分配

## 动态内存分配的意义C语言中的一切操作都是基于内存的变量和数组都是内存的别名内存分配由编译器在编译期间决定定义数组的时候必须指定数组长度数组长度是在编译期就必须确定的需求&#xff1a;程序在运行过程中&#xff0c;可能需要使用一些额外的内存空间malloc和freemall…

javafx 调用java_Java“地铁”表(JavaFX)

javafx 调用java再次嗨&#xff0c;这次&#xff0c;TableView“ Metro”样式被添加到JMetro JavaFX主题。 这会将JMetro版本放大到3.1.0。 我之所以没有添加表格样式&#xff0c;是因为奇怪的是在Fluent设计系统&#xff08;以前是Metro&#xff09;中还没有表格的定义。 有一…

IntelliJ IDEA for Mac 修改项目模块的名称

按下组合键 Command ; 打开项目结构窗口&#xff0c;选择左侧边栏的菜单【Modules】&#xff0c;然后选择你要修改的模块&#xff0c;在右侧的【Name】输入框可以修改名称&#xff0c;具体操作如下图所示&#xff1a; 注&#xff1a;模块名称虽然修改了&#xff0c;但是模块的…

二分查找算法举例说明C语言,C语言快速排序与二分查找算法示例

本文实例讲述了C语言二分排序与查找算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;题目&#xff1a;首先产生随机数&#xff0c;再进行快速排序&#xff0c;再进行二分查找。实现代码&#xff1a;#include #include #include void quiksort(int a[],int low,int …

gradle跟pom_Gradle多项目构建–父pom式结构

gradle跟pom当您来自Maven背景时&#xff0c;很可能已经习惯了父pom结构。 现在&#xff0c;在进行gradle时&#xff0c;情况有所不同。 想象一下有一个包含接口和各种其他实现的项目的场景。 这将是我们的项目结构。 multi-project-gradle -- specification -- core -- i…

java streams_使用Stream.peek在Java Streams内部进行窥视

java streams对于刚接触JDK 8的管道和流的Java开发人员而言&#xff0c; Stream接口提供的peek&#xff08;Consumer&#xff09;方法可以是有用的工具&#xff0c;有助于可视化流操作的行为。 即使是更熟悉Java流和聚合操作的Java开发人员&#xff0c;有时也会发现Stream.peek…

算法提高 日期计算c语言,算法提高 日期计算

//规定年份2017年1月1日 星期7#includeusing namespace std;int rn(int n) //判断是否是润年{if (n%40 && n%100!0 || n%4000)return 1;return 0;}int md[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){int year,month,day;int i,sum0,td0;while (cin>>…

IntelliJ IDEA for Mac 模块源文件的编译输出路径配置

按下组合键 Command ; 打开【项目结构】窗口&#xff0c;接着在左侧菜单栏中选择【Modules】&#xff0c;接着在右侧模块列表中选择要设置的模块&#xff0c;接着选择右侧的【Paths】标签&#xff0c;如下图所示&#xff1a; 不知道搞个【test ouput path】的好处在哪里&…

IntelliJ IDEA for Mac 如何在当前的普通Java项目中创建新的模块/添加模块/创建模块

文章目录添加模块的入口创建新的项目模块添加模块的入口 添加新的模块的入口有两个&#xff0c;如下图所示&#xff1a; 第一种方式&#xff0c;【File】 --> 【New】 --> 【Module】&#xff1a; 第二种方式&#xff0c;打开【Project Structure】窗口&#xff0c;然后…

react api_使用Java EE 8中的React式API加速服务

react api服务通常可以通过异步处理进行优化&#xff0c;即使不改变其对外界的行为。 某些服务效率不高的原因是&#xff0c;它们需要等待其他服务提供结果才能继续下去。 让我们看一下如何在不等待外部REST服务的情况下调用它们&#xff0c;并独立进行多个并行调用&#xff…

android申请权限一次性申请多个,android 6.0以上动态一次申请多个权限-最美解决方案...

目录背景危险权限申请权限思路申请权限流程干货后续一.背景android23 API新增危险权限校验&#xff0c;需要手动获取&#xff1a;二.危险权限&#xff1a;日历数据android.permission-group.CALENDARandroid.permission.READ_CALENDARandroid.permission.WRITE_CALENDAR相机and…

IntelliJ IDEA for Mac 直接将模块硬盘上的根目录删除会怎么样

不通过 IDEA 删除模块文件&#xff0c;而是直接手动从硬盘删除模块文件&#xff0c;造成的结果如下图所示&#xff1a; 【模块内容导航窗格】的内容是根据以下两个配置文件的信息从硬盘中加载进来的&#xff1a; 项目根目录/.idea/modules.xml 这个文件记载了配置文件【模块名…

java 谓词_谓词::不适合Java

java 谓词Jim Laskey在OpenJDK core-libs-dev邮件列表上最近的消息“ RFR&#xff1a;CSR – JDK-8203428 Predicate :: not ”指出了JDK Bug JDK-8203428 [“ Predicate :: not”]。 JDK-8203428的“摘要”指出&#xff1a;“引入新的静态方法Predicate :: not&#xff0c;这将…

android root权限函数,android 4.4下app永久获取root权限的方法

本帖最后由 jackson 于 2017-4-16 20:55 编辑通过参照[FAQ11414]android KK 4.4 版本后&#xff0c;user 版本su 权限严重被限制问题说明http://www.voidcn.com/blog/wds1181977/article/p-6157006.html明确要修改三个地方&#xff1a;(1)把dalvik/vm/native/dalvik_system_Zyg…

IntelliJ IDEA 项目开发中各个目录的关系

项目根目录&#xff08;Project Root&#xff09;&#xff1a;本地硬盘中存放项目内容的根目录 项目名称&#xff08;Project Name&#xff09;&#xff1a;IDEA 保存的项目名称&#xff0c;默认和项目根目录的名称相同&#xff0c;可以修改。有啥作用&#xff1f;通过 IDEA 部…

apache spark_Apache Spark中的自定义日志

apache spark您是否曾经对运行了几个小时的Spark作业感到沮丧&#xff0c;但由于基础设施问题而失败了。 您会很晚才知道此故障&#xff0c;并浪费了数小时的时间&#xff0c;当Spark UI日志也无法进行事后检查时&#xff0c;它会更加痛苦。 你不是一个人&#xff01; 在本文…

android中暂停服务,Android 装逼技术之暗码启动应用

前言喜欢的小伙伴欢迎关注&#xff0c;我会定期分享Android知识点及解析&#xff0c;还会不断更新的BATJ面试专题&#xff0c;欢迎大家前来探讨交流&#xff0c;如有好的文章也欢迎投稿。什么是暗码&#xff1f;在拨号盘中输入*#*##*#*后&#xff0c;APP 可以监控到这些输入&am…