通过在其他项目中制作jar来重用GWT自定义组件

时间:2011-11-23 11:42:53

标签: gwt

是否有人知道在GWT中创建自定义组件并在其他项目中将此组件用作jar的任何好教程。

或 任何想法,如何做到这一点。

2 个答案:

答案 0 :(得分:2)

你必须创建一个gwt模块。基本上你创建一个没有/ empty entryPoint的gwt项目。构建它时,您必须使用源文件创建一个jar。我认为最好的选择是使用Maven。在这种情况下,你需要gwt maven插件。这将帮助您创建已编译的工件+源工件。这是我在这些模块的pom文件中的典型构建阶段。

 <build>
    <!-- Generate compiled stuff in the folder used for developing mode -->
    <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <includes>
                            <include>src/main/java</include>
                        </includes>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>2.2.0</version>
            <dependencies>
                <dependency>
                    <groupId>com.google.gwt</groupId>
                    <artifactId>gwt-user</artifactId>
                    <version>2.3.0</version>
                </dependency>
                <dependency>
                    <groupId>com.google.gwt</groupId>
                    <artifactId>gwt-dev</artifactId>
                    <version>2.3.0</version>
                </dependency>
            </dependencies>
            <configuration>
                <compileSourcesArtifacts>
                    <compileSourcesArtifact>com.mycompany:myartifact</compileSourcesArtifact>
                    <compileSourcesArtifact>javax.validation:validation-api</compileSourcesArtifact>
                </compileSourcesArtifacts>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>resources</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在第二个项目中,您必须添加新工件的依赖项。感谢gwt maven插件和一些配置,它将能够从存储库中提取源jar。这是pom.xml依赖位

   <dependency>
        <groupId>com.mycompany</groupId>
        <artifactId>myartifact</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>

要获得第二个项目gwt-compiling,您需要在第一个项目上添加模块依赖项。这是.gwt.xml位:

    <inherits name='com.mycompany.gwt-module-i-want-to-import'/>

希望有所帮助。如果您需要更多信息,请给我一个喊叫。

答案 1 :(得分:1)

GWT需要* .java和* .class在类路径中,所以你只需将* .java与jAR中的* .class一起打包(或者用* .class和另一个制作一个JAR)如果你愿意,可以使用* .java。

除此之外,它真的好像代码在同一个项目中(re.gwt.xml和交叉包/模块边界)

您还需要更多信息吗?