Gradle在构建Grails项目时给出ClassNotFoundException

时间:2015-04-25 11:28:58

标签: grails gradle grails-plugin build.gradle

我正在尝试使用gradle-grails-plugin来构建一个现有的(小)Grails项目。这有用吗? free中的依赖项与build.gradle中指定的依赖项之间的关系是什么?

无论如何,我有两个项目,所以最顶层的buildConfig.groovy文件位于父目录中,如下所示:

build.gradle

然后Grails项目中的build.gradle看起来像:

buildscript {
   repositories {
      jcenter()
   }
   dependencies {
      classpath "org.grails:grails-gradle-plugin:2.2.0.RC1"
   }
}

task wrapper(type: Wrapper) {
   gradleVersion = '2.3'
}

但是,当我运行apply plugin: "grails" repositories { grails.central() //creates a maven repo for the Grails Central repository (Core libraries and plugins) } grails { grailsVersion = '2.4.4' groovyVersion = '2.3.9' springLoadedVersion '1.2.0.RELEASE' } dependencies { bootstrap "org.grails.plugins:tomcat:7.0.55.3" compile 'org.grails.plugins:asset-pipeline:3.0.1' compile 'org.grails.plugins:scaffolding:2.1.2' compile 'org.grails.plugins:cache:1.1.8' runtime 'org.grails.plugins:hibernate4:4.3.1.1' runtime 'org.grails.plugins:database-migration:1.3.8' runtime 'org.grails.plugins:jquery:1.11.0' } 时,我会回来:

./gradlew war

有人可以对此有所了解吗?通过谷歌几乎没有提到这一点,它似乎是一个Grails 3.x类?另外,我使用的是Java 1.7。

1 个答案:

答案 0 :(得分:1)

grails.artefact.Service确实可以从grails框架的v3.0中访问 - 可以看作here

使用以下语句grailsVersion = '2.4.4'指定使用v2.4.4并且它看起来都很好。破坏构建的是以下dependencies条目:

compile 'org.grails.plugins:asset-pipeline:3.0.1' 

在这个包中有一个类asset/pipeline/grails/AssetProcessorService,用于导入在运行时未加载的提到的grails.artefact.Service(可能是因为使用了v2.4.4)。

不幸的是,除了排除这种依赖之外,我不能提出任何解决方案。我不是Grails开发人员,也没有设置环境。

希望以某种方式提供帮助。