Как вы можете упаковать модуль GWT как файл Jar с Maven? - PullRequest
4 голосов
/ 07 ноября 2010

Мне нужно настроить Maven на:

а) скомпилировать модуль GWT

b) скопировать файлы * .java в jar (чтобы их можно было импортировать в другой модуль GWT)

c) скопировать результат шага компиляции в jar-файл (чтобы его можно было использовать на сервере как есть)

Кто-нибудь знает, как это можно сделать?

Основная идея заключается в том, что я хочу отделить свой проект GWT от проекта Spring MVC и удалить все зависимости, которые может иметь приложение Spring, от JW & jW-файлов GWT.

Таким образом, я могу использовать модули GWT как чистые библиотеки javascript и загружать их с помощью org.springframework.js.resource.ResourceServlet непосредственно из файлов Jar, сохраняя при этом гибкость для повторного использования модулей в других проектах GWT. *

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 14 ноября 2010

Я прилагаю решение, которое придумала, чтобы другие могли его использовать:

<!-- Set the output directory to something gwt:run can use in hosted mode -->
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
            <finalName>gwt-build-name</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <version>${gwt.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <hostedWebapp>${project.build.directory}/${project.build.finalName}</hostedWebapp>
                    </configuration>
                </plugin>
                <!-- Attach the resources plugin to the prepare-package phase to include the host page & generated javascript files -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>package-generated-javascript</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration> 
                                <!-- shove everything the compiler produced into the JAR/META-INF/ folder so that Spring resourceServlet can find it -->
                                <outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>${project.build.directory}/${project.build.finalName}</directory>
                                        <includes>
                                            <include>org.yournamehere.Main/**</include>
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                        <execution>
                            <id>include-host-page</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration> 
                           <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>

                                <resources>
                                    <resource>
                                        <directory>${basedir}/src/main/webapp</directory>
                                        <includes>
                                            <include>**</include>                                        
                                        </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

То, что сделано выше, это изменение выходного каталога на target / finalName, чтобы все оказалось в одном каталогеи подключите плагин ресурсов к этапам компиляции, подготовки пакета, чтобы скопировать выходные данные компилятора GWT в каталог сборки.Как только все будет готово, он по умолчанию попадет в последний jar-файл.

Таким образом, каталог сборки содержит все, что требуется для режима хоста, и все, что сервлету ресурсов Spring необходимо для обслуживания модуля GWT без каких-либо прямых зависимостей отGWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...