2014-09-24 85 views
1

我得到了一個簡短的問題,一段時間我試圖讓我的應用程序使用maven構建並運行到小型hickups中。使用標準BuildConfig.groovy,工作正常Grails 2.3.8可搜索插件和Maven

Grails 1.3.7 -> 2.0 -> 2.1 -> 2.3.8 

和我的應用程序的行爲,因爲它應該:

要開始我的更新它。

執行後現在:

grails create-pom mycompany 

和調整POM以反映現實多一點,我一直運行到以下錯誤:

[context.ContextLoader] [錯誤] [16: 00:24] [上下文初始化失敗] org.springframework.beans.factory.BeanCreationException:在ServletContext資源[/WEB-INF/applicationContext.xml]中定義的名爲'pluginManager'的bean創建時出錯:初始化方法的調用失敗;嵌套異常是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) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext。 java:455) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) at org.eclipse.jetty.server.Server.doStart(Server.java:261) at org.eclipse.jetty.util.component.AbstractLifeCy cle.start(AbstractLifeCycle.java:59) at org.grails.jetty.JettyServer.startServer(JettyServer.groovy:134) at org.grails.jetty.JettyServer.start(JettyServer.groovy:99) at _GrailsRun $ _run_closure1.doCall(_GrailsRun.groovy:60) at RunApp $ _run_closure1.doCall(RunApp.groovy:33) at org.grails.launcher.GrailsLauncher.launch(GrailsLauncher.java:144) at 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 more 引起來自:java.lang.ClassNotFoundException:grails。 plugin.searchable.SearchableService at org.grails.launcher.RootLoader.findClass(RootLoader.java:147) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at org.grails.launcher.RootLoader.loadClass (RootLoader.java:119) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ...我POM的17多個

配置:

構建部分:

<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全新安裝顯示了搜索插件的安裝成功。

加載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可搜索插件!

文檔可以在...

幫助可從[email protected]

問題和改進應在提高......

如果您是從升級以前的版本,請參閱...

|安裝拉鍊jquery-datatables-1.7.5.zip ... ...

|安裝的插件jQuery的數據表-1.7.5

............. |安裝拉鍊jetty-2.0.3.zip ... ...

|已安裝的插件碼頭2.0.3 .............

我真的很感謝一些幫助,並提前致謝!

回答

0

這是你的堆棧跟蹤相關線路:

java.lang.ClassNotFoundException: grails.plugin.searchable.SearchableService 

你有沒有在你的BuildConfig.groovy以下?

compile ":searchable:0.6.9" 

(按http://grails.org/plugin/searchable

+0

感謝,但表示它正在與Maven和所有的依賴都在POM定義。 – berlinguyinca 2014-09-24 23:39:28

+0

另外:grails run-app在沒有任何問題的情況下工作,並且正確地解析了來自pom的依賴關係,而:mvn grails:run-app因提到的錯誤而失敗。 – berlinguyinca 2014-09-24 23:42:18

+0

Appologies我沒有正確地讀你的問題。您確定該工件是.m2/org/grails/plugins/searchable/0.6.9 /並且文件擴展名爲.zip? – 2014-09-24 23:46:27

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> 

感謝提供幫助