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

 

在使用 IntelliJ IDEA 开发 Maven 项目时,如果项目模块名称后面显示了 `(root)` 标记,通常是因为该项目的 `pom.xml` 被识别为多模块项目的根模块。如果你希望去掉这个 `(root)` 显示,本质上是想让 IDEA 不再将其识别为多模块聚合项目(或仅作为普通项目处理),可以按以下步骤操作: ### 方法一:移除 `<modules>` 配置(适用于非多模块项目) 1. 打开项目的 `pom.xml` 文件。 2. 查找是否有 `<modules>` 标签,例如: ```xml <modules> <module>sub-module-1</module> </modules> ``` 3. 如果你不需要多模块结构,直接删除整个 `<modules>` 块。 4. 保存文件后,在 IDEA 中右键项目 → **Maven** → **Reload Project**。 这样 IDEA 就不会再将其识别为“根项目”,`(root)` 标记就会消失。 --- ### 方法二:将项目从“聚合项目”改为普通项目 如果你本没有子模块,但 IDEA 仍然显示 `(root)`,可能是因为 `pom.xml` 的 `packaging` 类型是 `pom`: ```xml <packaging>pom</packaging> ``` - 修改为: ```xml <packaging>jar</packaging> ``` 或者如果不写,默认也是 `jar`。 - 然后重新加载 Maven 项目。 > 注意:`packaging=pom` 通常用于多模块项目的父 POM,IDEA 会自动标记为 (root)。改为 `jar` 后,不再视为聚合项目,(root) 消失。 --- ### 方法三:在 IDEA 中重新导入项目 1. 右键项目 → **Maven** → **Unmark as Maven Project** 2. 再次右键 → **Add Framework Support** → 选择 Maven 重新添加 3. 或者直接删除 `.idea` 目录和 `*.iml` 文件,重新导入项目 --- ### 方法四:检查是否误建为多模块 如果你只是单模块项目,但在创建时错误地设置了 `modules`,请确保项目结构中没有多余的 `pom.xml` 或子目录被识别为模块。 --- ✅ 总结: 要去掉 `(root)`,关键是: - 删除 `<modules>` 标签; - 将 `<packaging>` 改为 `jar`; - 重新加载 Maven 项目。 --- ```xml <!-- 示例:一个干净的单模块 pom.xml --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- 不要写 pom --> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project> ```
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值