简体   繁体   English

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

[英]DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:

I am unable to run some basic groovy code with abstraction.我无法使用抽象运行一些基本的 groovy 代码。 I have read thru this link and auto generated pojos and rest controllers from Data Grip.我已通过此 链接阅读并从 Data Grip 自动生成 pojos 和 rest 控制器。

  1. On DataGrip I right-click, hit "Scripted Extensions" and在 DataGrip 上,我右键单击,点击“Scripted Extensions”,然后
  2. select a Groovy file. select Groovy 文件。 If the file is written exactly as "Groovy Pojos.groovy" (see in link) then it works.如果该文件完全按照“Groovy Pojos.groovy”(参见链接)编写,那么它可以工作。
  3. If I want to use some basic abstraction and designs around reusability it fails to work.如果我想围绕可重用性使用一些基本的抽象和设计,它就无法工作。 Cant even get to import classes in Groovy.甚至无法在 Groovy 中导入类。

Simple code snippet of what I tried我尝试过的简单代码片段

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;" ;
    }
...

Notice I have defined a super class AGenerate and then child classes GenerateEntityClass, I get a error when try to run AutoGenerate at the import line itself请注意,我已经定义了一个超级 class 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) }
        }

I get an error我收到一个错误

12:06 AM AutoGenerate.groovy: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script24.groovy: 4: unable to resolve class com.companyname.autogenerate.GenerateEntityClass @ line 4, column 1. import com.companyname.autogenerate.GenerateEntityClass; 12:06 AM AutoGenerate.groovy: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script24.groovy: 4: unable to resolve class com.companyname.autogenerate.GenerateEntityClass @ line 4, column 1. import com.companyname.自动生成。生成实体类;

Edit: Folder Structure Project编辑:文件夹结构项目

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

For some reason abstractions dont work.由于某种原因,抽象不起作用。 So I just separated the scripts in different files (ones that change and ones that done) and used a bash script to concat.所以我只是将脚本分隔在不同的文件中(更改的文件和完成的文件)并使用 bash 脚本进行连接。 For now this should work.现在这应该工作。 Until someone answers this in a better way this works.直到有人以更好的方式回答这个问题。

暂无
暂无

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

相关问题 org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:Script7.groovy:1:无法解析class - org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Script7.groovy: 1: unable to resolve class 带有 Groovy 的 Nifi ExecuteScript:org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败: - Nifi ExecuteScript with Groovy : org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: 引起:org.codehaus.groovy.control.MultipleCompilationErrorsException - Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException 构建失败:org.codehaus.groovy.control.MultipleCompilationErrorsException - Build Failing: org.codehaus.groovy.control.MultipleCompilationErrorsException 使用gmaven插件获取org.codehaus.groovy.control.MultipleCompilationErrorsException - Getting org.codehaus.groovy.control.MultipleCompilationErrorsException using gmaven plugin 未能执行目标 org.codehaus.gmavenplus:gmavenplus-plugin:1.6.1:generateStubs (groovy): classpath InvocationTargetException: 启动失败: - Failed to execute goal org.codehaus.gmavenplus:gmavenplus-plugin:1.6.1:generateStubs (groovy) : classpath InvocationTargetException: startup failed: 构建签名的应用程序“无法解决:org.codehaus.groovy:groovy-all:2.4.12”时出现错误 - while building a signed application “Failed to resolve: org.codehaus.groovy:groovy-all:2.4.12” error arrives Gradle下载https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-all/2.4.4/非常缓慢且失败 - Gradle Download https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-all/2.4.4/ very slow and failed Gradle:找不到org.codehaus.groovy:groovy:1.0.0 - Gradle : Could not find org.codehaus.groovy:groovy:1.0.0 CodeNarc和Groovy:NoSuchMethodError:org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeStaticMethod - CodeNarc and Groovy: NoSuchMethodError: org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeStaticMethod
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM