2012-03-01 15 views
0

私はGWTアプリケーションをmavenでビルドするように変換しようとしています。最初の問題は、コンパイラが私のPlaceHistoryMapperにある "@WithTokenizers"が好きではないようだということです。少なくとも、それは失敗だと思っています。私がコメントした場合、アプリケーションはコンパイルされます。これを動作させるには、いくつかの追加の設定をpomに入れる必要がありますか?それはEclipseでうまくコンパイルされます。もしEclipseがGWTソースをコンパイルした後にmavenをビルドしようとすると、ここでプレースアノテーションを使用したGWT Mavenビルド

は私が手例外です:ここで

[ERROR] -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin 
:2.3.2:compile (default-compile) on project product_ui_administration: Compilation failure 
\workspaces\java\product_ui_administration\src\main\java\com\company\product\ui\administration\AdminPlaceHistoryMapper.java:[13,0] illega 
l start of expression 

     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure 
\workspaces\java\product_ui_administration\src\main\java\com\company\product\ui\administration\AdminPlaceHistoryMapper.java:[13,0] illega 
l start of expression 

     at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656) 
     at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
     ... 19 more 
[ERROR] 

は私AdminPlaceHistoryMapperインタフェースは

// this annotation not working in mvn for some reason 
@WithTokenizers({ 
    UserDetailsPlace.Tokenizer.class, 
    UserPermissionsPlace.Tokenizer.class, 
    CompanyDetailsPlace.Tokenizer.class, 
}) 

public interface AdminPlaceHistoryMapper extends PlaceHistoryMapper { 
} 
+0

あなた 'AdminPlaceHistoryMapper.java'ファイルを追加してください。 –

+0

AdminPlaceHistoryMapper.java – Vinnie

+0

JDKの1.5バージョンでコンパイルしていますか? (http://twit88.com/blog/2008/03/09/maven-compile-your-application-to-be-14-15-or-16-compatible/を参照してください) –

答えて

1

ですこれはEclipseのコンパイラは無視され、簡単な構文の問題であることが判明したが、MavenのGWTコンパイラはフラグを立て。

From the "gwt-maven-plugin Users" Google Group

これは私にはかなり明確なようで、それもあなたの行番号を与える...

とにかく、あなたが合法的にあなたの トークナイザリストの末尾にコンマ文字を持つことができません。これは構文エラーです。あなたのEclipseコンパイラ はそれを許容していますが、他のコンパイラのほとんどはそうしません。

-Jesse

+0

サイドノートとして:配列宣言をしている場合は、コンマをつけることは合法です。私はそれが均質であると思う... – helios

関連する問題