IDEA 从入门到踩坑(1)-多模块项目报错 Module must not contain source root 解决

1. 多模块项目报错 “Module must not contain source root”

1.1 问题描述

在IDEA 中创建多模块项目时,经常会在项目结构调整(如新建或删除模块)的时候报出如下错误,导致工程编译或者标识源文件失败。这是因为在模块创建的时候有些不应该属于子模块的文件也被创建了出来,IDEA 将之记录在了模块配置的 xml 及 iml文件 中,之后尽管子模块中相干文件被删除,但是模块配置文件并没有被更新,从而导致了问题的发生
在这里插入图片描述

1.2 解决方式

  1. 网络上搜索的一种解决方式是 点击Project Settings 中的 moduls, 模块结构界面的右侧有源文件、资源文件等目录列表,删除不是子工程该有的目录,实测并不能解决问题

  2. IDEA 对模块的组织方式由 项目文件夹下的 .idea文件夹保存,切换进该文件夹会发现如下文件的存在。这些文件都由 IDEA 生成,对项目源码影响不大,将其直接删除就可以解决问题

     staff   160 10 12 10:44 modules/
     staff  1003 10 12 10:26 modules.xml
     staff   688 10 12 10:26 test.iml
    

2. lombok 插件找不到符号变量错误

2.1 问题描述

在项目的 build.gradle 文件中使用以下形式配置 lombok 依赖,并且在依赖列表中也确实引入了依赖,但是使用 IDEA 编译代码的时候报出找不到符号变量的错误

 dependencies {
        compile("org.projectlombok:lombok:1.16.18") {
            force = true
        }
 }

在这里插入图片描述

2.2 解决方式

  1. 首先保证 IDEA 已经下载了 lombok 的插件,之后检查是否启用了IDEA 中的注解处理
    在这里插入图片描述
    在这里插入图片描述

  2. 如果以上都没有问题,那么就应该考虑 gradle 的版本问题。在 gradle 的高版本环境(4.10.x 及以上)中,lombok 的配置方式发生改变,注解处理将不再在compile classpath中,需要手动添加到 annotation processor path。故最终的对应依赖如下:

     dependencies {
         annotationProcessor 'org.projectlombok:lombok:1.16.18'
         compileOnly 'org.projectlombok:lombok:1.16.18'
         testAnnotationProcessor 'org.projectlombok:lombok:1.16.18'
         testCompileOnly 'org.projectlombok:lombok:1.16.18'
    }
    

3. 配置项目启动的环境变量

3.1 问题描述

RPC 框架需要依赖注册中心 URL 来进行服务的注册发现及请求转发,但是在终端中使用命令 export SERVICE_DNS_URL=http://xxxx 设置环境变量之后,RPC 框架并没有正常获取环境变量配置,而是使用了默认配置,从而导致本地开发时调用其他服务不通

3.2 解决方式

在 IDEA 的导航栏点开运行实例的编辑选项,点击 Edit Configurations…进入运行配置的编辑界面,选择目标实例,修改该实例的运行配置,可以手动添加环境变量、VM参数等

IDEA导航栏:
IDEA导航栏

运行配置编辑界面:在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值