当前位置: 首页 > news >正文

[Maven]IDEA父工程创建子工程后父工程不可运行

    IDEA在使用maven构建项目时,如果你在当前工程下创建一个子工程,那么原有的工程(变为父工程的工程)原有的代码通常会变得不可运行。

    这是因为,使用maven创建父子工程关系后,IDEA会自动变更项目的模块相关配置。

    比如这是我maven工程原本的项目结构和其设置:

    可以看到,当前我的项目还是可以运行的,Main.java被标记为蓝色的class文件。 

    我们在mavenText2项目下面创建一个子工程,然后我们原有的代码就不可以运行了,且它的标记变成了咖啡图标:

    

    这个其实就是简单的IDEA使用方面的知识了。

    先回到项目一块来讲,比如一个JavaWeb项目,这是它的包结构:

    Maven中父子工程之间,可以简单地看成是项目与分包的关系。以刚刚的maven项目例子为例,父工程就是我们展示的这个JavaWeb项目的根目录,而下面的一个个子工程就是"src"和"web"次一级分包,这里用另一个更恰当的词:模块。

    比如这个JavaWeb的前端模块就是web,后端模块是src (当然,往后肯定会遇到更加复杂的分包和模块设置。

    IDEA在你创建子工程之后,父工程就默认为类似根目录的存在。项目的根目录会直接放运行代码么?不会,所以原本父工程的src的包就被当成无意义了,然后IDEA会自动更改你的模块设置。

    比如,这是创建子工程前的项目结构:

     这是创建了子工程之后的项目结构:

    可以看到我们的源文件夹和编译输出包都被删了 (模块的设置,文件没有被删)。

    在此之前,小伙伴们在Java项目下面创建普通的Java项目还未出现过该情况,maven是则不是,会自动修改相关设置。

    修改模块设置属于IDEA使用范畴的相关知识,而之所以改动模块设置,是因为maven构建项目的定义有关,一个父工程中是一个个子工程,而整个项目的运行代码,会在一个子工程当中,而不是父工程。

http://www.lryc.cn/news/504023.html

相关文章:

  • 【系统移植】在开发板上加载内核和根文件系统的三种方法
  • #渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍02-基于错误消息的SQL注入(Error-Based SQL Injection)
  • 数据结构-排序(来自于王道)
  • 【蓝桥杯选拔赛真题93】Scratch青蛙过河 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • ReactPress最佳实践—搭建导航网站实战
  • Hive-4.0.1数据库搭建(可选配置用户名密码远程连接)
  • P8772 求和 P8716 回文日期
  • MySQL迁移SQLite
  • RocketMQ中的顺序消息和乱序消息详解
  • Unity UGUI图片循环列表插件
  • Kafka系列教程 - Kafka 生产者 -2
  • AI Chat API 对接说明
  • Thread线程基础使用
  • 【Linux】结构化命令
  • ElasticSearch01-概述
  • docker xxxx is using its referenced image ea06665f255d
  • Vue 2 中 v-text 和 v-html 指令的使用详解
  • 高级Python游戏开发:创建一款多人对战坦克大战
  • 数据结构_拓扑排序
  • Edge SCDN 边缘安全加速有什么用?
  • 被狗咬住怎么让它松口?
  • MySQL迁移SQLite 借助PYTHON脚本
  • Python什么是动态调用方法?What is Dynamic Method Invocation? (中英双语)
  • Cesium中实现仿ArcGIS三维的动态图层加载方式
  • 数据冒险、控制冒险、结构冒险
  • TCA9555芯片手册解读(6)
  • NodeJs-fs模块
  • Transformer: Attention Is All You Need (2017) 翻译
  • 【记录】Django解决与VUE跨域问题
  • Java 常见Exception异常解决方法