2010-08-31 16 views
11

के कारण संकलन विफलता मैं mcleclsese और GWT ग्रहण प्लगइन्स के साथ एक्लिप्स 3.5 (गैलीलियो) का उपयोग कर रहा हूं। मैंने gwt-maven-plugin archetype का उपयोग कर एक प्रोजेक्ट बनाया है।जीडब्ल्यूटी मैवेन ग्रहण प्लगइन - डुप्लिकेट क्लास

my.package.client.DataService 
my.package.client.DataServiceAsync 
my.package.server.DataServiceImpl 

जब मैं mvn clean चलाने के लिए, लक्ष्य निर्देशिका निकाल दिया जाता है (जैसा कि exepected): मैं एक RPC सेवा इन कक्षाओं के साथ परिभाषित बनाया है।

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MyProject: Compilation failure 
C:\Devel\EclipseProjects\MyProject\target\generated-sources\gwt\my\package\client\DataServiceAsync.java:[8,7] duplicate class: my.project.client.DataServiceAsync 
-> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MyProject: Compilation failure 
C:\Devel\EclipseProjects\MyProject\target\generated-sources\gwt\my\package\client\DataServiceAsync.java:[8,7] duplicate class: my.project.client.DataServiceAsync 


    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:581) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeForkedExecutions(DefaultLifecycleExecutor.java:685) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:560) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:121) 
    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 
C:\Devel\EclipseProjects\MyProject\target\generated-sources\gwt\my\package\client\DataServiceAsync.java:[8,7] duplicate class: my.project.client.DataServiceAsync 


    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516) 
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577) 
    ... 16 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

विफलता, लक्ष्य निर्देशिका निम्न निर्देशिका संरचना के साथ बनाया गया है और इस तरह के रूप में यह में एकल फाइल करने के बाद:

MyProject/target/generated-sources/gwt/my/project/client/DataServiceAsync.java 

के बाद से जब मैं gwt:compile gwt:run -X -e चलाने के लिए, मैं त्रुटि मिलती है gwt:compile gwt:run -X -e चलाने से पहले लक्ष्य निर्देशिका मौजूद नहीं थी, निर्देशिकाएं बनाई जानी चाहिए और जावा वर्ग को लक्ष्य निष्पादित करने के हिस्से के रूप में कॉपी किया गया था। तो, लक्ष्य अब डुप्लिकेट कक्षा के बारे में क्यों शिकायत करेगा?

किसी भी मदद की बहुत सराहना कर रहा है!

उत्तर

32

मैं this posting पाया है जिसमें कहा गया है:

If you manually create the Async interface you must disable the generateAsync goal in the plugin configuration

ठीक मेरी pom.xml से <goal>generateAsync</goal> दूर करने के लिए किया गया था। प्लगइन कॉन्फ़िगरेशन अब इस तरह दिखता है:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <version>1.2</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>compile</goal> 
       <goal>test</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <runTarget>my.package.Application/Application.html</runTarget> 
    </configuration> 
</plugin> 
5

आप वास्तव में एक डुप्लिकेट कक्षा उत्पन्न कर सकते हैं।

pom.xml में "generAsync" लक्ष्य है जो आपके द्वारा बनाई गई प्रत्येक सेवा के लिए Async कक्षाएं उत्पन्न करने का ख्याल रखता है। यदि आपके पास यह है तो आपको मैन्युअल रूप से एसिंक संस्करण बनाने की आवश्यकता नहीं है।

यदि आप करते हैं तो आपको "डुप्लिकेट क्लास" त्रुटि मिल जाएगी।

संबंधित मुद्दे