After updating to GAE 1.9.49 Maven fails to execute goal endpoints_get_discovery_doc

695 Views Asked by At

I tried to update the GAE version to the latest 1.9.49 released on Jan 30, 2017, and encountered the following issue:

[INFO] --- appengine-maven-plugin:1.9.49:endpoints_get_discovery_doc (default) @ dugout-api-web ---
[INFO]
[INFO] Google App Engine Java SDK - get endpoints discovery doc...
[INFO] Using Class Name: com.project.api.resource.admin.AFDApiService
[INFO] Using Class Name: com.project.api.resource.admin.AFLApiService
[INFO] Using Class Name: com.project.api.resource.admin.AFSApiService
[INFO] Using Class Name: com.project.api.resource.admin.ALApiService
[INFO] Using Class Name: com.project.api.resource.admin.APApiService
[INFO] Using Class Name: com.project.api.resource.admin.ARApiService
[INFO] Using Class Name: com.project.api.resource.admin.AUApiService
[INFO] Using Class Name: com.project.api.resource.admin.AUtApiService
[INFO] Using Class Name: com.project.api.resource.admin.BaseAdminApiService
[INFO] Using Class Name: com.project.api.resource.BaseApiService
[INFO] Using Class Name: com.project.api.resource.chat.ChatApiService
[INFO] Using Class Name: com.project.api.resource.pub.BasePublicApiService
[INFO] Using Class Name: com.project.api.resource.pub.f.FDApiService
[INFO] Using Class Name: com.project.api.resource.pub.f.FDrApiService
[INFO] Using Class Name: com.project.api.resource.pub.f.FLApiService
[INFO] Using Class Name: com.project.api.resource.pub.f.FSApiService
[INFO] Using Class Name: com.project.api.resource.pub.f.FTApiService
[INFO] Using Class Name: com.project.api.resource.pub.GCrApiService
[INFO] Using Class Name: com.project.api.resource.pub.PApiService
[INFO] Using Class Name: com.project.api.resource.pub.SApiService
[INFO] Using Class Name: com.project.api.resource.pub.UApiService
[INFO] Executing endpoints Command=[get-discovery-doc, -cp, D:\project\project-api\project-api-web\target\project-api-web-develop-SNAPSHOT\WEB-INF\classes;D:\project\project-api\project-api-web\target/classes;D:\project\project-api\project-common\target\project-common-develop-SNAPSHOT.jar;D:\mvn_repo\com\googlecode\objectify\objectify\5.1.8\objectify-5.1.8.jar;D:\mvn_repo\com\google\code\gson\gson\2.3.1\gson-2.3.1.jar;D:\mvn_repo\commons-codec\commons-codec\1.9\commons-codec-1.9.jar;D:\mvn_repo\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.5.4\jackson-dataformat-xml-2.5.4.jar;D:\mvn_repo\com\fasterxml\jackson\core\jackson-core\2.5.4\jackson-core-2.5.4.jar;D:\mvn_repo\com\fasterxml\jackson\core\jackson-annotations\2.5.0\jackson-annotations-2.5.0.jar;D:\mvn_repo\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.5.4\jackson-module-jaxb-annotations-2.5.4.jar;D:\mvn_repo\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;D:\project\project-api\project-service-email\target\project-service-email-develop-SNAPSHOT.jar;D:\mvn_repo\com\mandrillapp\wrapper\lutung\lutung\0.0.5\lutung-0.0.5.jar;D:\mvn_repo\commons-io\commons-io\1.3.2\commons-io-1.3.2.jar;D:\mvn_repo\com\sendgrid\sendgrid-java\2.2.2\sendgrid-java-2.2.2.jar;D:\mvn_repo\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;D:\mvn_repo\org\apache\httpcomponents\httpmime\4.3.4\httpmime-4.3.4.jar;D:\mvn_repo\org\json\json\20140107\json-20140107.jar;D:\mvn_repo\com\sendgrid\smtpapi-java\1.2.0\smtpapi-java-1.2.0.jar;D:\mvn_repo\org\apache\httpcomponents\httpclient\4.3.4\httpclient-4.3.4.jar;D:\mvn_repo\com\github\spullara\mustache\java\compiler\0.8.17\compiler-0.8.17.jar;D:\mvn_repo\commons-logging\commons-logging\1.1\commons-logging-1.1.jar;D:\mvn_repo\log4j\log4j\1.2.12\log4j-1.2.12.jar;D:\mvn_repo\logkit\logkit\1.0.1\logkit-1.0.1.jar;D:\mvn_repo\avalon-framework\avalon-framework\4.1.3\avalon-framework-4.1.3.jar;D:\project\project-api\project-persistence\target\project-persistence-develop-SNAPSHOT.jar;D:\project\project-api\project-cache\target\project-cache-develop-SNAPSHOT.jar;D:\mvn_repo\org\apache\commons\commons-collections4\4.0\commons-collections4-4.0.jar;D:\project\project-api\project-service\target\project-service-develop-SNAPSHOT.jar;D:\mvn_repo\com\gocardless\gocardless-java\3.1.0\gocardless-java-3.1.0.jar;D:\mvn_repo\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\mvn_repo\com\fasterxml\jackson\core\jackson-databind\2.5.4\jackson-databind-2.5.4.jar;D:\project\project-api\project-service-channel\target\project-service-channel-develop-SNAPSHOT.jar;D:\mvn_repo\com\pusher\pusher-rest-java\0.9.0\pusher-rest-java-0.9.0.jar;D:\project\project-api\project-api-opta\target\project-api-opta-develop-SNAPSHOT.jar;D:\mvn_repo\com\thoughtworks\xstream\xstream\1.4.8\xstream-1.4.8.jar;D:\mvn_repo\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;D:\mvn_repo\xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar;D:\mvn_repo\com\google\appengine\tools\appengine-gcs-client\0.6\appengine-gcs-client-0.6.jar;D:\mvn_repo\com\google\apis\google-api-services-storage\v1-rev68-1.21.0\google-api-services-storage-v1-rev68-1.21.0.jar;D:\mvn_repo\com\google\api-client\google-api-client\1.21.0\google-api-client-1.21.0.jar;D:\mvn_repo\com\google\oauth-client\google-oauth-client\1.21.0\google-oauth-client-1.21.0.jar;D:\mvn_repo\com\google\api-client\google-api-client-appengine\1.22.0\google-api-client-appengine-1.22.0.jar;D:\mvn_repo\com\google\oauth-client\google-oauth-client-appengine\1.22.0\google-oauth-client-appengine-1.22.0.jar;D:\mvn_repo\com\google\oauth-client\google-oauth-client-servlet\1.22.0\google-oauth-client-servlet-1.22.0.jar;D:\mvn_repo\com\google\http-client\google-http-client-jdo\1.22.0\google-http-client-jdo-1.22.0.jar;D:\mvn_repo\com\google\api-client\google-api-client-servlet\1.22.0\google-api-client-servlet-1.22.0.jar;D:\mvn_repo\javax\jdo\jdo2-api\2.3-eb\jdo2-api-2.3-eb.jar;D:\mvn_repo\javax\transaction\transaction-api\1.1\transaction-api-1.1.jar;D:\mvn_repo\com\google\http-client\google-http-client-appengine\1.22.0\google-http-client-appengine-1.22.0.jar;D:\mvn_repo\com\google\http-client\google-http-client\1.22.0\google-http-client-1.22.0.jar;D:\mvn_repo\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;D:\mvn_repo\com\google\http-client\google-http-client-jackson2\1.22.0\google-http-client-jackson2-1.22.0.jar;D:\mvn_repo\org\codehaus\woodstox\woodstox-core-asl\4.1.4\woodstox-core-asl-4.1.4.jar;D:\mvn_repo\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;D:\project\project-api\project-api-euros\target\project-api-euros-develop-SNAPSHOT.jar;D:\mvn_repo\com\google\inject\extensions\guice-persist\4.0\guice-persist-4.0.jar;D:\mvn_repo\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;D:\mvn_repo\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;D:\mvn_repo\com\google\appengine\appengine-remote-api\1.9.28\appengine-remote-api-1.9.28.jar;D:\mvn_repo\com\google\appengine\appengine-api-1.0-sdk\1.9.49\appengine-api-1.0-sdk-1.9.49.jar;D:\mvn_repo\com\google\appengine\appengine-endpoints\1.9.49\appengine-endpoints-1.9.49.jar;D:\mvn_repo\com\google\inject\guice\4.0\guice-4.0.jar;D:\mvn_repo\javax\inject\javax.inject\1\javax.inject-1.jar;D:\mvn_repo\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\mvn_repo\com\google\inject\extensions\guice-servlet\4.0\guice-servlet-4.0.jar;D:\mvn_repo\com\google\guava\guava\18.0\guava-18.0.jar;D:\mvn_repo\joda-time\joda-time\2.7\joda-time-2.7.jar;D:\mvn_repo\org\apache\commons\commons-lang3\3.3.2\commons-lang3-3.3.2.jar;D:\mvn_repo\com\google\appengine\appengine-api-labs\1.9.49\appengine-api-labs-1.9.49.jar;D:\mvn_repo\org\scribe\scribe\1.3.6\scribe-1.3.6.jar, -o, D:\project\project-api\project-api-web\target/generated-sources/appengine-endpoints/WEB-INF, -w, D:\project\project-api\project-api-web\target/generated-sources/appengine-endpoints, -f, rest, com.project.api.resource.admin.AFDApiService, com.project.api.resource.admin.AFLApiService, com.project.api.resource.admin.AFSApiService, com.project.api.resource.admin.ALApiService, com.project.api.resource.admin.APApiService, com.project.api.resource.admin.ARApiService, com.project.api.resource.admin.AUApiService, com.project.api.resource.admin.AUtApiService, com.project.api.resource.admin.BaseAdminApiService, com.project.api.resource.BaseApiService, com.project.api.resource.chat.ChatApiService, com.project.api.resource.pub.BasePublicApiService, com.project.api.resource.pub.f.FDApiService, com.project.api.resource.pub.f.FDrApiService, com.project.api.resource.pub.f.FLApiService, com.project.api.resource.pub.f.FSApiService, com.project.api.resource.pub.f.FTApiService, com.project.api.resource.pub.GCrApiService, com.project.api.resource.pub.PApiService, com.project.api.resource.pub.SApiService, com.project.api.resource.pub.UApiService]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] project-api ......................................... SUCCESS [  4.547 s]
[INFO] project-common-test-dep ............................. SUCCESS [  0.430 s]
[INFO] project-common ...................................... SUCCESS [  7.699 s]
[INFO] project-cache ....................................... SUCCESS [  1.026 s]
[INFO] project-persistence ................................. SUCCESS [  3.256 s]
[INFO] project-common-test-utils ........................... SUCCESS [  0.727 s]
[INFO] project-service-email ............................... SUCCESS [  1.296 s]
[INFO] project-service-channel ............................. SUCCESS [  1.263 s]
[INFO] project-service ..................................... SUCCESS [  5.777 s]
[INFO] project-api-opta .................................... SUCCESS [  4.171 s]
[INFO] project-api-euros ................................... SUCCESS [  1.577 s]
[INFO] project-api-web ..................................... FAILURE [  3.696 s]
[INFO] project-api-import .................................. SKIPPED
[INFO] project-api-task .................................... SKIPPED
[INFO] project-build-ear ................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35.682 s
[INFO] Finished at: 2017-02-01T20:09:52+02:00
[INFO] Final Memory: 55M/485M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.appengine:appengine-maven-plugin:1.9.49:endpoints_get_discovery_doc (default) on project project-api-web: -f -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.google.appengine:appengine-maven-plugin:1.9.49:endpoints_get_discovery_doc (default) on project project-api-web: -f
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: -f
    at com.google.appengine.endpoints.EndpointsMojo.executeEndpointsCommand(EndpointsMojo.java:114)
    at com.google.appengine.endpoints.EndpointsGetDiscoveryDoc.execute(EndpointsGetDiscoveryDoc.java:47)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    ... 20 more

For previous versions the build succeeded for the same goal.

Part of the relevant project-api-web\pom.xml is shown below:

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>

            <configuration>
                <webXml>${project.build.directory}/generated-sources/appengine-endpoints/WEB-INF/web.xml</webXml>
                <webResources>
                    <resource>
                        <!-- this is relative to the pom.xml directory -->
                        <directory>${project.build.directory}/generated-sources/appengine-endpoints</directory>
                        <!-- the list has a default value of ** -->
                        <includes>
                            <include>WEB-INF/*.discovery</include>
                            <include>WEB-INF/*.api</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>${appengine.target.version}</version>
            <configuration>
                <enableJarClasses>false</enableJarClasses>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>endpoints_get_discovery_doc</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    </build>

It appears that after update com.google.api.server.spi.tools.EndpointsTool fails to handle the format option: -f, rest

So currently the update is reverted to version 1.9.48 as a workaround.

Any help/suggestions will be highly appreciated.

2

There are 2 best solutions below

0
On

I've reported this issue to the GitHub tracker for the appengine-maven-plugin. It appears specific to this component as changing the version for the plugin specifically is what affects the bug. There is also another issue which was reported recently on that tracker regarding deployments which seems dependent on this one.

0
On

Working on it. Fix will be in 1.9.50 release.