0

私はgwt mavenプロジェクトを作成しました。それを実行したいので、提供しているコマンドラインから:

mvn compile gwt:run -DrunTarget=com.engile.Engile/Engile.html

しかし、ログには次のように表示されます。

ava.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at com.appops.server.data.hibernate.SessionProvider.createSessionFactory(SessionProvider.java:46)
    at com.appops.server.data.hibernate.HibernateDataSourceConnector.init(HibernateDataSourceConnector.java:39)
    at com.engile.server.services.ConfigurationServlet.init(ConfigurationServlet.java:45)
    at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:117)
    at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)
    at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)
    at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

pom.xml には以下が含まれます。

<properties>
        <!-- Convenience property to set the GWT version -->
        <gwtVersion>2.4.0</gwtVersion>
        <!-- GWT needs at least java 1.5 -->
        <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
<build>

    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>gwt-maven-plugin</artifactId>
                                <!-- <versionRange>[2.5.0,)</versionRange> -->
                                <version>${gwtVersion}</version>
                                <goals>
                                    <goal>resources</goal>
                                    <goal>compile</goal>
                                    <goal>i18n</goal>
                                    <goal>generateAsync</goal>
                                </goals>

                                <configuration>
                                    <runTarget>Engile.html</runTarget>
                                    <hostedWebapp>${project.build.directory}/${project.build.finalName} </hostedWebapp>
                                    <modules>
                                        <module>com.engile.Engile</module>
                                    </modules>
                                    <!-- <runTarget>com.engile.Engile/Engile.html</runTarget> -->
                                </configuration>
                            </pluginExecutionFilter>
                            <action>
                                <execute />
                            </action>
                        </pluginExecution>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-war-plugin</artifactId>
                                <versionRange>[2.1.1,)</versionRange>
                                <goals>
                                    <goal>exploded</goal>
                                </goals>

                            </pluginExecutionFilter>
                            <action>
                                <execute />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <webappDirectory>${webappDirectory}</webappDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

ソース セクションのビルド パスでは、src/main/java の outputfolder は target/classes であり、デフォルトの出力フォルダーは次のとおりです。

engilev2_with_mavenold/src/main/webapp/WEB-INF/classes

java クラスがコンパイルされる webapp/classes フォルダーと target/classes フォルダーがわかりません。

4

1 に答える 1

0

ビルドタグで gwt-maven-plugin を構成していません。maven-compiler-plugin と lifecycle-mapping プラグインのみを構成しています。lifecycle-plugin の下の gwt-maven-plugin は、更新サイクルで gwt コンパイルを呼び出さないように Eclipse に通知するためだけのものです。

他のスタックオーバーフローの質問でも同じ問題があります- 目標 org.codehaus.mojo:gwt-maven-plugin:2.5.0:run のパラメーター 'runTarget' が見つからないか無効です

maven-compiler-plugin の後に、buil タグの下に pom.xml の別のプラグイン タグを追加します。

<plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>gwt-maven-plugin</artifactId>
                        <!-- <versionRange>[2.5.0,)</versionRange> -->
                        <version>${gwtVersion}</version>
                        <goals>
                            <goal>resources</goal>
                            <goal>compile</goal>
                            <goal>i18n</goal>
                            <goal>generateAsync</goal>
                        </goals>

                        <configuration>
                            <runTarget>Engile.html</runTarget>
                            <hostedWebapp>${project.build.directory}/${project.build.finalName} </hostedWebapp>
                            <modules>
                                <module>com.engile.Engile</module>
                            </modules>
                            <!-- <runTarget>com.engile.Engile/Engile.html</runTarget> -->
                        </configuration>
</plugin>
于 2012-12-28T15:36:22.003 に答える