我有这个问题,我构建我的项目(mvn clean install
),一些传递依赖项是快照版本,并下载并复制到目标webapp目录,例如XXXUtil-1.0-20110922.172721-52.jar
。然后,当我运行mvn gwt:run
时,它会找到使用XXXUtil-1.0-SNAPSHOT.jar
并将其复制到目标webapp目录。我无法弄清楚为什么会这样。无论我是以爆炸还是在现场运行都无关紧要。
<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构建我的战争时,它会在WEB-INF / lib中生成正确的jar,所以我们有C-1.0-20110922.172721-52.jar。这是正确的,如果我部署我的战争它是有效的。如果我使用eclipse在托管模式下运行,那很好。但是当我运行mvn:gwt-run时,C-1.0-SNAPSHOT.jar被复制到WEB-INF / lib中,所以我有2个罐子C-1.0-SNAPSHOT.jar和C-1.0-20110922.172721-52.jar。
答案 0 :(得分:0)
我唯一能建议你的是尝试调试maven-gwt-plugin。
从git存储库中签出 https://github.com/gwt-maven-plugin/gwt-maven-plugin.git
答案 1 :(得分:0)
我有完全相同的问题。调试之后,我删除了使用maven-war-plugin并添加了maven-resources-plugin(编译阶段,复制资源目标)。我试过gwt:运行并安装之后,工作没有任何问题。这样,我们避免了依赖项被复制两次。