Windows下IntelliJ未自动加载grailsPlugin模块 无法识别spring-security-core类
解决方案
方案1:调整插件依赖scope
你当前配置中spring-security-core的scope为runtime,仅运行时生效,IntelliJ静态语法检查不会加载该范围依赖的类定义,因此会出现合法类标红的问题。修改pom.xml中对应依赖的scope即可:
<dependency> <groupId>org.grails.plugins</groupId> <artifactId>spring-security-core</artifactId> <version>${grails.spring-security.version}</version> <scope>compile</scope> <type>zip</type> <exclusions> <!--<exclusion> <!– can make global exclusion in BuildConfig –> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion>--> <exclusion> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> </exclusion> </exclusions> </dependency>
修改后刷新Maven项目,等待IntelliJ重新索引即可。
方案2:手动触发Grails插件模块生成
- 右键项目根目录,选择「框架|添加Grails支持」,确认Grails SDK版本为2.4.5,勾选「自动管理插件依赖和模块」
- 执行
grails refresh-dependencies命令刷新插件依赖 - 打开「文件|项目结构|模块」,检查是否已自动生成
[app-name]-grailsPlugins模块,若未生成则手动导入:- 点击模块列表上方的+号,选择「导入模块」
- 定位到当前项目目录下的
target/work/plugins(或用户目录下.grails/2.4.5/projects/[你的项目名]/plugins)路径,导入后标记该模块为Grails插件模块即可
方案3:手动添加插件源码到编译类路径
如果上述方案无效,可直接将插件源码加入主模块的依赖:
- 找到本地Maven仓库中
org/grails/plugins/spring-security-core对应版本的zip包,解压到本地任意目录 - 打开「文件|项目结构|模块|你的主模块|依赖」
- 点击+号,选择「JAR或目录」,导入解压后插件的
src/groovy、src/java目录,标记为「源代码」类型 - 保存设置后重新索引项目即可
方案4:降级IntelliJ版本
Grails 2.4.5属于老旧版本,2022及之后的IntelliJ版本已移除对Grails 2.x的原生支持,可降级到IntelliJ 2021.3.x版本,该版本原生兼容Grails 2.4.5的模块自动生成逻辑。
内容的提问来源于stack exchange,提问作者Axel Kouassi
相关产品推荐
相关产品推荐

