idea复制maven项目,source root为原项目的解决方法

为什么要复制module?

1.module中有大量相同的重复代码(多为测试的时候),一个个复制文件太麻烦;
2.网速慢,新建maven项目常常要下载好多包,构建耗费大量的时间;
3.版本问题。如springboot项目,idea只提供最近的几个版本的可选项,现在都是2.x版本,想新建springboot1.x版本的module,需要先选择一个2.x的版本,然后等创建完成后在手动改为1.x版本。这样会造成不必要的下载,更重要的是2.x的自动生成测试类和1.x的不同,编译运行时会报错,需要手动改,很麻烦。

所以如果有一个已经存在的module,采用复制的方法往往更加方便快捷。

idea复制maven项目,可以直接ctrl+c,crtl+v粘贴,如下图:

在这里插入图片描述

shiro-test-copy是复制之后的项目,可以看到该项目并没有加粗,说明还没有被识别为module。

如果是新建的module,则默认会将module写入父工程的pom配置文件;而复制的项目则不会,所以应该手动的将module写入配置文件。如下图:

在这里插入图片描述

上图,在父工程的pom文件中增加了module,可以看到左侧项目的module是“shiro-test(1)”,而右侧有两个shiro-test,证明module已经被项目识别,但是module名称没有改变,所以下一步要修改module名称。

在这里插入图片描述

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

修改为与目录名称相同的module名,我这里修改为shiro-test-copy,就可以看到复制的项目被加粗了。

到此,复制项目已经被识别为module,我们也修改了module名称使之与项目名对应,也修改了对应的pom文件的artifactId。

打开项目,发现新的问题出现了:

在这里插入图片描述

新项目的source root是shiro-test,这样会导致The root already belongs to module "XXX"的错误。

解决方法:

打开project structure,找到被复制项目(这里是shiro-test),将复制后新加的source文件夹删除即可。如下图:

在这里插入图片描述

在这里插入图片描述
source root消失,可以码代码了。。。

补充:
还有一种情况,各种独立开发模块,将一开发好的独立模块引入项目时,如果这个模块在之前IDEA中单独运行过,那么整合时需要将模块剪切到项目目录下,否则会使项目依赖混乱

注意:

  • 除了上面这些情况,maven工程名与项目名应保持一致
    在这里插入图片描述

  • 导入已开发好的模块,如admin模块
    ①将该模块拷贝到目标项目下(通常只是一个包裹着各个微服务模块的文件夹,如下)
    在这里插入图片描述

②删除该功能模块的.iml文件和.git文件(如果有的话)
如果没有上面两步操作直接导入出现依赖混乱等问题

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值