2012-03-01 3 views
0

Maven으로 빌드하기 위해 GWT 앱을 변환하려고 시도하고 있습니다. 필자가 가장 먼저 겪었던 문제는 컴파일러가 PlaceHistoryMapper에있는 "@WithTokenizers"를 좋아하지 않는 것입니다. 적어도 필자는이 코드가 실패했다고 생각하며 주석을 달면 응용 프로그램이 컴파일됩니다. 이 기능을 사용하려면 일부 구성을 내 pom에 넣어야합니까? 이클립스에서 잘 컴파일되거나, 이클립스가 이미 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] 

이것은 이클립스 컴파일러가 무시하는 간단한 문법 문제로 밝혀졌다

// 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

내 AdminPlaceHistoryMapper 인터페이스이지만 받는다는 GWT 컴파일러 플래그 : 여기

내가 얻을 예외입니다 .

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

이 나에게 꽤 명확한 것 같다

, 그것은 심지어 당신이 합법적으로 토큰 화 목록의 마지막에 쉼표 문자를 가질 수 없습니다, 어쨌든 당신에게 줄 수 ...

을 제공합니다 . 그것은 구문 오류입니다. 이클립스 컴파일러 이이를 허용했지만 대부분의 다른 컴파일러에서는 그렇지 않습니다.

-Jesse는

+0

부연 설명 : 배열 선언이있는 경우 엔 쉼표로 끝나는 것이 합법적입니다. 나는 그것이 homogeneusness 술에 있다고 생각 ... – helios

관련 문제