grails - 在Grails 2.5.6中获取ClassNotFoundException

标签 grails

从1.3.7迁移到2.5.6
java.lang.ClassNotFoundException:org.codehaus.groovy.grails.project.compiler.GrailsProjectCompiler我们如何解决这个问题?
尝试使用目标grails:clean grails:war -Dmaven.skip.test = true构建项目
Grails版本:2.5.6
Java 1.7版

最佳答案

正如评论中所指出的那样,您需要花很多时间才能启动并运行它。

此特定错误可能是因为您缺少Grails所需的新依赖关系。如果您有一个Maven项目,而我想在遇到这个问题时就拥有了这个,那么这就是您所需要的:

    <dependency>
        <groupId>org.grails</groupId>
        <artifactId>grails-dependencies</artifactId>
        <version>${grails.version}</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.grails</groupId>
        <artifactId>grails-test</artifactId>
        <version>${grails.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.grails</groupId>
        <artifactId>grails-plugin-testing</artifactId>
        <version>${grails.version}</version>
        <scope>test</scope>
    </dependency>

您还必须将所有旧的依赖项都删除到1.3 grails核心。如果我不记得错的话,在1.3版本中会产生一系列依赖关系。

如果不是maven项目,则应通过在BuildConfig.groovy中指定inerits("global")来免费获得它:
grails.project.dependency.resolution = {
   // inherit Grails' default dependencies
   inherits("global") {
       // specify dependency exclusions here; for example, uncomment this to     
   }
...

也就是说,这不是升级时的最后一个问题。我已经成功地完成了一些小型项目的升级,但是付出了很大的努力。对于较大的项目,我会认真考虑是否值得。

如果您决定使用它,最好的建议是生成一个新的空2.5.6项目,并将设置和依赖项与旧项目进行比较。

关于grails - 在Grails 2.5.6中获取ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49625916/

相关文章:

grails - 使用XmlSlurper解析时如何使用带点的配置条目

unit-testing - 在 grails 中重写域属性的 setter 是否正确?

grails - Grails可搜索插件查询

grails - Spring Security编码密码从旧版本到新版本的问题

grails - gmaven grails项目未使用maven-war-plugin

grails - Grails支架页面的错误响应编码

hibernate - Grails 和 Hibernate - 大量具有大量属性的域对象

grails - 为什么 stacktrace.log 没有在 grails 3 中填充 logback?

oracle - 将 oracle 11g 与 Grails 和 Hibernate 集成

grails - groovy:将字符串(列表)转换为Groovy列表