我得到了一个简短的问题,有一段时间我正试图让我的应用程序与maven一起构建并运行到小型的hickup中。
要开始,我从以下网址更新:
Grails 1.3.7 -> 2.0 -> 2.1 -> 2.3.8
使用标准的BuildConfig.groovy,它工作正常,我的应用就像它应该的那样。
现在执行:
grails create-pom mycompany
并调整pom以反映现实,我一直遇到以下错误:
[context.ContextLoader] [ERROR] [16:00:24] [上下文初始化失败] org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义了名为'pluginManager'的bean创建错误:init方法的调用失败;嵌套异常是java.lang.NoClassDefFoundError:Lgrails / plugin / searchable / SearchableService; at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1214) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676) 在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 在org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 在org.eclipse.jetty.server.Server.doStart(Server.java:261) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 在org.grails.jetty.JettyServer.startServer(JettyServer.groovy:134) 在org.grails.jetty.JettyServer.start(JettyServer.groovy:99) 在_GrailsRun $ _run_closure1.doCall(_GrailsRun.groovy:60) 在RunApp $ _run_closure1.doCall(RunApp.groovy:33) 在org.grails.launcher.GrailsLauncher.launch(GrailsLauncher.java:144) 在org.grails.maven.plugin.tools.ForkedGrailsRuntime.main(ForkedGrailsRuntime.java:168) 引起:java.lang.NoClassDefFoundError:Lgrails / plugin / searchable / SearchableService; at java.lang.Class.privateGetDeclaredFields(Class.java:2348) at java.lang.Class.getDeclaredField(Class.java:1916) ......还有15个 引起:java.lang.ClassNotFoundException:grails.plugin.searchable.SearchableService 在org.grails.launcher.RootLoader.findClass(RootLoader.java:147) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在org.grails.launcher.RootLoader.loadClass(RootLoader.java:119) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ......还有17个
配置我的pom:
构建部分:
<build>
<pluginManagement/>
<plugins>
<!-- Disables the Maven surefire plugin for Grails applications, as we have our own test runner -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>surefire-it</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>plugins</directory>
<includes>
<include>**/*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>${grails.version}</version>
<configuration>
<!-- Whether for Fork a JVM to run Grails commands -->
<fork>true</fork>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
依赖部分:
<dependencies>
.....
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>searchable</artifactId>
<version>0.6.9</version>
<type>zip</type>
<scope>compile</scope>
</dependency>
....
</dependencies>
并执行mvn clean install显示可搜索插件的成功安装。
加载Grails 2.3.8 |配置类路径 |运行预编译的脚本 。 |环境设置为开发 ...... |安装zip tinyurl-0.1.zip ... ... |安装插件tinyurl-0.1 ............. |安装zip executor-0.3.zip ... ... |已安装的插件执行器-0.3 ............. |安装zip searchable-0.6.9.zip ... ... |已安装的插件可搜索-0.6.9
感谢您安装Grails Searchable Plugin!
文档可在......
获得可从user@grails.codehaus.org获取帮助
应该在......提出问题和改进。
如果您要从之前的版本升级,请参阅...
|安装zip jquery-datatables-1.7.5.zip ... ...
|已安装的插件jquery-datatables-1.7.5
............. |安装zip jetty-2.0.3.zip ... ...
|已安装的插件jetty-2.0.3 .............
我真的很感激这方面的一些帮助,并提前感谢!
答案 0 :(得分:0)
这是你的stacktrace中的相关行:
java.lang.ClassNotFoundException: grails.plugin.searchable.SearchableService
您的BuildConfig.groovy中有以下内容吗?
compile ":searchable:0.6.9"
答案 1 :(得分:0)
好的,这个问题的解决方案原来是将maven grails插件更新为2.4.3,现在一切都在构建。
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<!-- Whether for Fork a JVM to run Grails commands -->
<fork>true</fork>
<grailsVersion>${grails.version}</grailsVersion>
</configuration>
<extensions>true</extensions>
</plugin>
感谢您提供的帮助