DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:
DataGrip org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
我无法 运行 一些基本的 groovy 抽象代码。我已经通读了这个 link 并从 Data Grip 自动生成了 pojos 和 rest 控制器。
- 在 DataGrip 上,我右键单击,点击“脚本扩展”,然后
- select 一个 Groovy 文件。如果文件完全按照“Groovy Pojos.groovy”(参见 link)编写,那么它就可以工作。
- 如果我想围绕可重用性使用一些基本的抽象和设计,它就无法工作。甚至无法在 Groovy.
中导入 classes
我尝试过的简单代码片段
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 然后是子 classes 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.autogenerate.GenerateEntityClass;
编辑:文件夹结构
项目
-->scripts
----->AutoGenerate.groovy (call this from DataGrip)
----->com
-------->companyname
----------->autogenerate
-------------->AGenerate.groovy
-------------->GenerateEntityClass.groovy
-->src
出于某种原因,抽象不起作用。所以我只是将不同文件中的脚本分开(更改的和完成的)并使用 bash 脚本进行连接。现在这应该工作。直到有人以更好的方式回答这个问题。
我无法 运行 一些基本的 groovy 抽象代码。我已经通读了这个 link 并从 Data Grip 自动生成了 pojos 和 rest 控制器。
- 在 DataGrip 上,我右键单击,点击“脚本扩展”,然后
- select 一个 Groovy 文件。如果文件完全按照“Groovy Pojos.groovy”(参见 link)编写,那么它就可以工作。
- 如果我想围绕可重用性使用一些基本的抽象和设计,它就无法工作。甚至无法在 Groovy. 中导入 classes
我尝试过的简单代码片段
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 然后是子 classes 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.autogenerate.GenerateEntityClass;
编辑:文件夹结构 项目
-->scripts
----->AutoGenerate.groovy (call this from DataGrip)
----->com
-------->companyname
----------->autogenerate
-------------->AGenerate.groovy
-------------->GenerateEntityClass.groovy
-->src
出于某种原因,抽象不起作用。所以我只是将不同文件中的脚本分开(更改的和完成的)并使用 bash 脚本进行连接。现在这应该工作。直到有人以更好的方式回答这个问题。