Maven GWT Plugin копирует несколько версий одинаковых снимков jar - PullRequest
2 голосов
/ 23 сентября 2011

У меня есть проблема, когда я строю свой проект (mvn clean install), некоторые из транзитивных зависимостей являются версиями снимков и загружаются и копируются в целевой каталог веб-приложения, например, XXXUtil-1.0-20110922.172721-52.jar. Затем, когда я запускаю mvn gwt:run, он находит использование XXXUtil-1.0-SNAPSHOT.jar и копирует его в целевой каталог веб-приложения. Я не могу понять, почему это происходит. Неважно, бегу я как взорванный или на месте.

<plugins>
    <!-- GWT Maven Plugin -->
    <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>2.3.0-1</version>
            <executions>
                    <execution>
                            <goals>
                                    <goal>compile</goal>
                                    <goal>i18n</goal>
                                    <goal>generateAsync</goal>
                            </goals>
                    </execution>
            </executions>
            <configuration>
                    <runTarget>Shell.html</runTarget>
                    <hostedWebapp>${webappDirectory}</hostedWebapp>
    <i18nMessagesBundle>com.myapp.client.Messages</i18nMessagesBundle>
            </configuration>
            <dependencies>
                    <dependency>
                            <groupId>com.google.gwt</groupId>
                            <artifactId>gwt-user</artifactId>
                            <version>${gwt.version}</version>
                    </dependency>
                    <dependency>
                            <groupId>com.google.gwt</groupId>
                            <artifactId>gwt-dev</artifactId>
                            <version>${gwt.version}</version>
                    </dependency>
            </dependencies>
    </plugin>

    <!-- Copy static web files before executing gwt:run -->
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <executions>
                    <execution>
                            <phase>compile</phase>
                            <goals>
                                    <goal>exploded</goal>
                            </goals>
                    </execution>
            </executions>
            <configuration>
<!-- <outputFileNameMapping>@{artifactId}@-@{version}@.@{extension}@</outputFileNameMapping>  -->
                    <webappDirectory>${webappDirectory}</webappDirectory>
            </configuration>
    </plugin>
</plugins>

Ни одно из предложений, описанных здесь, не поможет: http://www.tikalk.com/alm/forums/maven-war-plugin-picking-multiple-version-same-snapshot-jars.

Если я создаю локальные снимки файла XXXUtil-1.0-SNAPSHOT.jar, он работает не при загрузке снимков из хранилища Nexus. Другой способ взглянуть на это так: проект A генерирует WAR и зависит от B.jar, который зависит от C.jar. Когда я строю свою войну, используя mvn install, она генерирует правильные jar-файлы в WEB-INF / lib, поэтому у нас есть C-1.0-20110922.172721-52.jar. Что правильно, и это работает, если я разверну свою войну. Если я бегу в размещенном режиме, используя затмение, это нормально. Но когда я запускаю mvn: gwt-run, C-1.0-SNAPSHOT.jar копируется в WEB-INF / lib, поэтому у меня есть 2 фляги C-1.0-SNAPSHOT.jar и C-1.0-20110922.172721-52.jar.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2012

У меня была точно такая же проблема.После отладки я удалил использование maven-war-plugin и добавил maven-resources-plugin (фаза компиляции, цель copy-resources).Я попробовал gwt: запустить и установить после этого, работал без проблем.Таким образом, мы избегаем копирования зависимостей дважды.

0 голосов
/ 26 сентября 2011

Единственное, что я могу вам предложить, это попробовать отладить maven-gwt-plugin.

Оформить заказ из репозитория git https://github.com/gwt-maven-plugin/gwt-maven-plugin.git

...