簡體   English   中英

DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException:啟動失敗:

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

我無法使用抽象運行一些基本的 groovy 代碼。 我已通過此 鏈接閱讀並從 Data Grip 自動生成 pojos 和 rest 控制器。

  1. 在 DataGrip 上,我右鍵單擊,點擊“Scripted Extensions”,然后
  2. select 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;" ;
    }
...

請注意,我已經定義了一個超級 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) }
        }

我收到一個錯誤

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.自動生成。生成實體類;

編輯:文件夾結構項目

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

由於某種原因,抽象不起作用。 所以我只是將腳本分隔在不同的文件中(更改的文件和完成的文件)並使用 bash 腳本進行連接。 現在這應該工作。 直到有人以更好的方式回答這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM