为什么要复制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消失,可以码代码了。。。
llllllllll4er5ty 发布了15 篇原创文章 · 获赞 15 · 访问量 7万+ 私信 关注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。