使用IDEA时常遇到的问题

本文解决IDEA中常见的配置问题,包括Lombok、Spring配置、Maven路径等,详细介绍SpringBoot热部署的多种方法,如使用SpringLoaded、spring-boot-devtools及jrebel插件,提供Maven仓库的本地设置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Lombok Requires Annotation Processing
“Ctrl+Alt+S”打开Settings的配置界面,选择"Settings > Build > Compiler > Annotation Processors"页签,勾选Enable annotation processing复选框。

2.Unmapped Spring configuration files found.Please configure Spring facet.
“Ctrl+Shift+Alt+S”打开project的配置界面,选择“Facets”页签,点击“+”按钮,添加所有配置文件(New Application Context)。
3.IDEA @SpringBootApplication报错原因
1)Maven的路径要正确

2)选择“Import Maven projects automatically”

3)设置工程自动编译“Build project automatically”

  1. IntelliJ IDEA 中SpringBoot对Run/Debug Configurations配置 SpringBoot热部署
    Use classpath of module选中要运行的模块
    VM options:内部配置参数
    -Dserver.port=8080 -Dspring.profiles.active=test -Ddebug
    server.port可以设置端口号,spring.profiles.active=test可以设置运行环境
    -Ddebug 开启debug模式

使用maven启动:
不同版本的spring-boot-maven-plugin的jvm参数配置有所不同,同时与通过main方法启动springboot程序传递参数也有所不同。
在运行main方法时,可以通过java -jar 后面通过添加-D的参数即可传递,比如:
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 huishi-api-implementation.jar
参考:
java -Djsse.enableSNIExtension=false -Xmx1200m -XX:MaxPermSize=256M -agentlib:jdwp=transport=dt_socket,server=y,address=30306,suspend=n -jar mac-quickstart-2.0.jar -gui
pom.xml文件配置:



org.springframework.boot
spring-boot-maven-plugin

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005




此时运行spring-boot:run,是可以正常传递参数。但此时通过mvn spring-boot:run命令来传递参数,参数值将会无效。
同样,即使项目中pom文件配置了上面的plugin,直接通过main方法启动,此参数也是不会生效的。打包部署时依旧需要在执行命令中添加参数项。
这种方式要改动文件,对于提交比较麻烦,不太喜欢。
idea中对springboot进行热部署
1.SpringLoaded
使用pom.xml修改

org.springframework.boot spring-boot-maven-plugin org.springframework springloaded 1.2.6.RELEASE

或者添加vm参数:
-javaagent:D:\maven\repository\org\springframework\springloaded\1.2.6.RELEASE\springloaded-1.2.6.RELEASE.jar -noverify
我比较喜欢添加vm参数的方式
这种方式系统会监视classes文件,当有classes文件被改动时,系统会重新加载类文件,不用重启启动服务。
2.使用spring-boot-devtools
pom.xml中添加

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

将依赖关系标记为可选true是一种最佳做法,可以防止使用项目将devtools传递性地应用于其他模块。
这种方式是使用自动重启
自动重启的原理在于spring boot使用两个classloader:不改变的类(如第三方jar)由base类加载器加载,正在开发的类由restart类加载器加载。应用重启时,restart类加载器被扔掉重建,而base类加载器不变,这种方法意味着应用程序重新启动通常比“冷启动”快得多,因为base类加载器已经可用并已填充。
所以,当我们开启devtools后,classpath中的文件变化会导致应用自动重启。
总之上面这两种方式都是在改动class文件的时候才会进行热部署,所以要手动进行编译或者开始idea的自动编译。
3.jrebel插件
5.解决项目module图标下面没有蓝色小方块的问题
打开modules.xml文件,添加或修改fileurl或filepath,如果没有iml文件要先生成

  1. idea如何生成iml文件
    在项目的pom文件位置处打开cmd执行命令: mvn idea:module

  2. IntelliJ IDEA 中 右键新建(new)时,选项没有scala(java) class的解决方法和具体解释
    Project Structure——>modules 中选中目录分别设置为源目录和资源目录

8.idea新建的springBoot项目,自动生成的入口类中提示错误Cannot resolve symbol ‘@springbootapplication’
点击install maven会从服务器下载缺少的jar包到本地仓库,这个过程要保证网络可用。(具体的maven以及maven镜像库设置请百度maven配置这里不做讲述了)下载完成后重新导入一下jar包,maven --> reimport 一般问题就可以解决。

9.idea 启动时报 error:java 无效的源发行版11
编译的版本不符合,需要修改统一

10.将下载到本地的JAR包手动添加到Maven仓库

ojdbc-----------------(参数二) ojdbc-----------(参数三) 10.2.0.4.0------------(参数四) 语法: mvn install:install-file -Dfile=jar包的位置(参数一) -DgroupId=groupId(参数二) -DartifactId=artifactId(参数三) -Dversion=version(参数四) -Dpackaging=jar 我把“ojdbc-10.2.0.4.0.jar”放到了“D:\Program Files\mvn\”下, 注意:“Program Files”中间有空格,所以要加双引号,另外三个参数,从上面复制过来即可,下面是我安装ojdbc-10.2.0.4.0.jar包使用的命令: mvn install:install-file -Dfile="D:\Program Files\mvn\ojdbc-10.2.0.4.0.jar" -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar

11.设置本地仓库目录
设置本地的maven仓库,我们在解压后的目录D:\apache-maven-3.5.3\conf找到settings文件, 若不设置则默认的路径为${user.home}/.m2/repository, 在修改settings文件之前,我们选择一个磁盘创建我们Maven本地仓库的位置,如F:\Maven\repository。使用文本编辑工具如notepad++等或者windows自带的文本编辑器打开D:\apache-maven-3.5.3\conf(即解压后目录的conf目录)下的settings文件,修改的设置,原来这部分设置是被注释掉的,我们将注释放开,如下图所示,并设置repository(本地仓库)的位置,如下图所示。

  1. intellij IDEA设置自动导入删除引用包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值