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消失,可以码代码了。。。

发布了15 篇原创文章 · 获赞 15 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/llllllllll4er5ty/article/details/104425284
今日推荐