我尝试了很多东西,似乎我的项目执行了两次"maven-war-plugin“。
正因为如此,我不能运行优化,比如将所有类合并到一个jar中(使用maven shade插件)。
我非常确定appengine-maven-plugin正在调用maven-war-plugin来创建appengine包。我之所以知道这一点,是因为我试着去掉我自己对"maven-war-plugin“的定义,但它仍然是”神奇地“执行。这样做有什么意义吗?
我的pom.xml是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
</execution>
</executions>
<configuration>
<webResources>
<!-- in order to interpolate version from pom into appengine-web.xml -->
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jar</exclude>
</excludes>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.target.version}</version>
<configuration>
<useJava7>true</useJava7>
<address>0.0.0.0</address>
<port>8080</port>
<compileEncoding>utf-8</compileEncoding>
<jvmFlags>
<jvmFlag>-XX:-UseSplitVerifier</jvmFlag>
<jvmFlag>-Xms512m</jvmFlag>
<jvmFlag>-Xmx2048m</jvmFlag>
<jvmFlag>-XX:NewSize=256m</jvmFlag>
<jvmFlag>-XX:MaxNewSize=256m</jvmFlag>
<jvmFlag>-XX:PermSize=512m</jvmFlag>
<jvmFlag>-XX:MaxPermSize=768m</jvmFlag>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-agentlib:jdwp=transport=dt_socket,address=31337,server=y,suspend=n</jvmFlag>
</jvmFlags>
</configuration>
</plugin>发布于 2013-07-11 07:21:45
看起来您显式地运行了两次war插件,在executions部分中声明了该插件的另一次执行。appengine-maven-plugin只是声明包阶段必须已经完成。它并不关心打包过程中会发生什么。
Here就是一个很好的例子。
我希望这能帮到你。
https://stackoverflow.com/questions/17582465
复制相似问题