【问题标题】:appengine-maven-plugin has a maven-war-plugin in the background? it gets called twice if I define on my ownappengine-maven-plugin 在后台有一个 maven-war-plugin?如果我自己定义它会被调用两次
【发布时间】:2013-07-09 01:56:19
【问题描述】:

我尝试了很多东西,似乎我的项目执行了两次“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>

【问题讨论】:

    标签: google-app-engine maven-war-plugin appengine-maven-plugin


    【解决方案1】:

    您似乎明确地运行了两次 war 插件,您在该插件的执行部分中声明了另一个执行。 appengine-maven-plugin 只是声明包阶段必须已经完成。它不关心包装过程中发生的事情。

    Here 是一个很好的例子来说明如何做到这一点。

    我希望这会有所帮助。

    【讨论】:

    • Matt,您可以从该软件包中完全删除 maven-war-plugin,它仍然会运行。换句话说:我无法自定义 maven-war-plugin 配置。
    • 复制问题: $ git clone github.com/GoogleCloudPlatform/appengine-guestbook-java $ vi pom.xml (删除 maven-war-plugin 的整个声明)然后执行 $ mvn package
    猜你喜欢
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2011-02-28
    • 2021-02-16
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多