繁体   English   中英

DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:

DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我无法通过抽象运行一些基本的 groovy 代码。 我已阅读此 链接并从 Data Grip 自动生成 pojo 和休息控制器。

  1. 在 DataGrip 上,我右键单击,点击“Scripted Extensions”,然后
  2. 选择一个 Groovy 文件。 如果文件完全按照“Groovy Pojos.groovy”(见链接)编写,那么它就可以工作。
  3. 如果我想围绕可重用​​性使用一些基本的抽象和设计,它就无法工作。 甚至无法在 Groovy 中导入类。

我尝试过的简单代码片段

class abstract AGenerate {
abstract def getPackageName() ;
abstract def getFileSuffix() ;
abstract def generateClassFiles()
abstract def generate(output, className, fields) ;
def typeMapping = [
(~/(?i)int/) : "Integer",
(~/(?i)bigint/) : "Long",
(~/(?i)float/): "Double", : "Float",
(~/(?i)double|decimal|real/) : "Double",
(~/(?i)datetime|timestamp/) : "java.sql.Timestamp",
(~/(?i)date/) : "java.sql.Date",
(~/(?i)time/) : "java.sql.Time",
(~/(?i)/) : "String"
]
...  

package com.companyname.autogenerate ;
import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->
    SELECTION.filter { it instanceof DasTable && it.getKind() == ObjectKind.TABLE }.each { generateFolderFromTable(it, dir) }
}
class GenerateEntityClass extends AGenerate {
    def getFileSuffix() {
        return "Entity.java"
    }
    def getPackageName() {
        return "com.sample;" ;
    }
...

请注意,我定义了一个超类 AGenerate,然后定义了子类 GenerateEntityClass,尝试在导入行本身运行 AutoGenerate 时出现错误

import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind

import com.mycompany.autogenerate.GenerateEntityClass

 def GenerateEntityClass entityClass = new GenerateEntityClass();
        FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->        
            SELECTION.filter { it instanceof DasTable && it.getKind() == ObjectKind.TABLE }.each { entityClass.generateFolderFromTable(it, dir) }
        }

我收到一个错误

12:06 AM AutoGenerate.groovy:org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:Script24.groovy:4:无法解析类 com.companyname.autogenerate.GenerateEntityClass @ 第 4 行,第 1 列。导入 com.companyname。自动生成.GenerateEntityClass;

编辑:文件夹结构项目

-->scripts
----->AutoGenerate.groovy (call this from DataGrip)
----->com
-------->companyname
----------->autogenerate
-------------->AGenerate.groovy
-------------->GenerateEntityClass.groovy
-->src
1 个回复

由于某种原因,抽象不起作用。 所以我只是将不同文件中的脚本(更改的文件和完成的文件)分开,并使用 bash 脚本进行连接。 现在这应该有效。 直到有人以更好的方式回答这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM