在Grails 2.5.6中获取ClassNotFoundException

时间:2018-04-03 08:53:04

标签: 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

1 个答案:

答案 0 :(得分:0)

如评论所述,您将有一段很长的路要走。

此特定错误可能是因为您缺少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项目,并将设置和依赖项与旧项目进行比较。