Grails构建配置错误:MySQL坐标格式问题及JVM警告求助
解决GGTS中
generate-all和test-app命令的报错问题 我来帮你搞定这两个报错,都是Grails项目配合GGTS时常见的小问题,分两步逐一解决:
1. 修复MySQL驱动的构件坐标格式错误
这个是导致命令执行失败的核心问题。Maven/Grails的依赖坐标必须严格遵循 <groupId>:<artifactId>[:<extension>[:<classifier>]]:<version> 的格式,你当前写的mysql:mysql-connector-java-5.1.45-bin明显不符合规范——把版本号和artifactId混在了一起,还错误地将-bin当成了坐标的一部分。
解决步骤:
- 打开项目根目录下的
BuildConfig.groovy文件(Grails项目的核心依赖配置文件) - 找到MySQL驱动的依赖声明,比如原来可能是这样的:
runtime 'mysql:mysql-connector-java-5.1.45-bin' - 修正为正确的坐标格式:
(注:如果确实需要带runtime 'mysql:mysql-connector-java:5.1.45'-bin的classifier版本,要写成mysql:mysql-connector-java:jar:bin:5.1.45,但通常官方的mysql-connector-java默认jar已经包含bin内容,用上面的简化版就足够) - 保存文件后,重新运行
test-app -unit ats.JD或者generate-all myPackage.*,依赖加载错误应该就消失了。
2. 消除Java 8的MaxPermSize警告
这个警告不会影响命令执行,但看着闹心。原因是Java 8已经彻底移除了PermGen永久代,改用Metaspace元空间,原来的MaxPermSize参数已经完全失效。
解决步骤:
- 找到GGTS的安装目录,打开
eclipse.ini文件(GGTS基于Eclipse开发,所以配置文件是这个) - 找到包含
-XX:MaxPermSize=256m的那一行,直接删除它 - 如果需要调整元空间的大小,可以添加一行
-XX:MaxMetaspaceSize=256m(不添加的话JVM会使用默认值,一般场景下完全够用) - 保存文件后重启GGTS,这个警告就不会再出现了。
内容的提问来源于stack exchange,提问作者Judith kaushik
相关产品推荐
相关产品推荐

