Idea的Maven项目:子模块无法使用父模块中已导入的依赖问题

转载:https://blog.csdn.net/iteacoder/article/details/109322386
问题描述
使用idea创建maven项目后,如果频繁地修改maven模块名称,有可能会出现父模块中已经引入依赖在子模块中不能使用的问题。

原因
如果模块已经install到了本地maven仓库,修改模块名称后,本地仓库中旧名称的项目也会存在不会删除,而且idea的一些项目配置如*.iml和.idea文件中的配置也会记录以前模块名称,并且会和本地仓库中的旧名称模块产生关联,所以新项目的类会无法找到所以报错

解决方法
退出idea,并删除本项目中关于idea的项目配置文件:包括.idea文件夹和.iml配置文件等
删除本地仓库中的旧项目
使用idea重新打开项目即可
防止问题再次出现
不要频繁修改module名称
一定要修改module名称的话,记的把对应名称且已安装到本地仓库地项目删除
在这里插入图片描述
重新打开项目后,要手动加载父项目的pom.xml文件

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven,一个模块只能有一个模块,因此无法直接实现两个模块共同引用模块的情况。不过,可以通过在两个模块都添加对模块依赖来实现这一目的。 具体步骤如下: 1.在模块的pom.xml文件,声明自己的groupId、artifactId和version等信息,并引用所需的依赖。 2.在两个模块的pom.xml文件,分别声明对模块依赖。注意,这里的groupId、artifactId和version应该与模块声明的信息保持一致。 3.在两个模块,都可以引用模块的类和资源文件。 举个例,假设有两个模块A和B,以及一个模块C,其模块C定义了一个名为"com.example.Calculation"的类,用于实现加法和减法运算。现在需要让模块A和模块B都引用模块C的Calculation类,可以按照如下步骤操作: 1. 在模块C的pom.xml文件,声明自己的groupId、artifactId和version等信息,并引用所需的依赖: ``` <groupId>com.example</groupId> <artifactId>module-c</artifactId> <version>1.0.0</version> ``` 2. 在模块A和模块B的pom.xml文件,分别声明对模块C的依赖: ``` <!-- 在模块A声明对模块C的依赖 --> <dependency> <groupId>com.example</groupId> <artifactId>module-c</artifactId> <version>1.0.0</version> </dependency> <!-- 在模块B声明对模块C的依赖 --> <dependency> <groupId>com.example</groupId> <artifactId>module-c</artifactId> <version>1.0.0</version> </dependency> ``` 3. 在模块A和模块B,都可以引用模块C的Calculation类: ``` import com.example.Calculation; public class MainClass { public static void main(String[] args) { Calculation calculator = new Calculation(); int result = calculator.add(2, 3); System.out.println(result); } } ``` 需要注意的是,模块C的Calculation类应该是一个独立的模块,不依赖于任何模块。同时,如果模块C的类和资源文件被模块A和模块B同时引用,可能会导致冲突和重复定义等问题,需要谨慎处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值