[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构建项目的定义有关,一个父工程中是一个个子工程,而整个项目的运行代码,会在一个子工程当中,而不是父工程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值