How to fix my Maven dependencies, if methods from 'com.google.common.base.Stopwatch' are not found?

110 views
Skip to first unread message

Shay Rubin via StackOverflow

unread,
Dec 3, 2016, 3:35:07 AM12/3/16
to google-appengin...@googlegroups.com

I use google cloud storage to read file from it. It's working when i build it from within Eclipse. But when i build it with maven, it compiles but fails at runtime (when i build with eclipse no runtime exceptions at all)

I need help, see the exception after the build is conducted via Maven:

java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.createUnstarted()Lcom/google/common/base/Stopwatch;
        at com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:156)
        at com.google.appengine.tools.cloudstorage.GcsServiceImpl.getMetadata(GcsServiceImpl.java:132)

Here is the related Maven POM that I use:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>selectmediaservers</groupId>
      <artifactId>selectmediaservers</artifactId>
      <version>1</version>
      <packaging>war</packaging>
      <properties>  <!-- App Engine Standard currently requires Java 7 -->
      <maven.compiler.target>1.7</maven.compiler.target>
      <maven.compiler.source>1.7</maven.compiler.source>
      <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>

     </properties>
        <build>
        <directory>${project.basedir}/Server/Cloud/selectmediaservers/target</directory>
        <outputDirectory>${project.build.directory}/classes</outputDirectory>
        <sourceDirectory>Server/Cloud/selectmediaservers</sourceDirectory>
      <plugins>

        <plugin>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>1.9.46</version>
                <configuration>
                        <gcloud_verbosity>debug</gcloud_verbosity>
                        <set_default>false</set_default>
                        <log_level>info</log_level>
                        <max_module_instances>2</max_module_instances>
                        <version>${VER}</version>
                </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
              <webXml>${project.basedir}/Server/Cloud/selectmediaservers/war/WEB-INF/web.xml</webXml>
              <warSourceDirectory>${project.basedir}/Server/Cloud/selectmediaservers/war</warSourceDirectory>
              <webResources>
                <resource>
                  <directory>${project.basedir}/Server/Cloud/selectmediaservers/war</directory>
                  <includes>
                    <include>${project.basedir}/Server/Cloud/selectmediaservers/war/WEB-INF/appengine-web.xml</include>
                    <include>${project.basedir}/Server/Cloud/selectmediaservers/war/WEB-INF/web.xml</include>
                  </includes>
                </resource>
              </webResources>
            </configuration>
          </plugin>
      </plugins>
        </build>

      <dependencies>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>19.0-rc1</version>
            </dependency>
            <dependency>
                <groupId>com.sendgrid</groupId>
                <artifactId>sendgrid-java</artifactId>
                <version>2.2.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.8.5</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>   
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.7</version>
                <scope>compile</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.apis</groupId>
                <artifactId>google-api-services-bigquery</artifactId>
                <version>v2-rev330-1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.appengine</groupId>
                <artifactId>appengine-api-1.0-sdk</artifactId>
                <version>1.9.46</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.appengine</groupId>
                <artifactId>appengine-api-labs</artifactId>
                <version>1.9.46</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>`enter code here`
            <dependency>
                <groupId>nl.bitwalker</groupId>
                <artifactId>UserAgentUtils</artifactId>
                <version>1.2.4</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>           
            <dependency>
                <groupId>com.google.appengine.tools</groupId>
                <artifactId>appengine-gcs-client</artifactId>
                <version>0.6</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>2.9.6</version>
            </dependency>
            <dependency>
                <groupId>com.google.apis</groupId>
                <artifactId>google-api-services-storage</artifactId>
                <version>v1-rev92-1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.api-client</groupId>
                <artifactId>google-api-client</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.api-client</groupId>
                <artifactId>google-api-client-servlet</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.api-client</groupId>
                <artifactId>google-api-client-appengine</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.http-client</groupId>
                <artifactId>google-http-client-jackson2</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.8.5</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>3.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.google.oauth-client</groupId>
                <artifactId>google-oauth-client</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.oauth-client</groupId>
                <artifactId>google-oauth-client-appengine</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.http-client</groupId>
                <artifactId>google-http-client-jdo</artifactId>
                <version>1.22.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
      </dependencies>
    </project>


Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/40886468/how-to-fix-my-maven-dependencies-if-methods-from-com-google-common-base-stopwa

zenlambda via StackOverflow

unread,
Dec 3, 2016, 7:30:04 PM12/3/16
to google-appengin...@googlegroups.com

Have you tried depending on guava 19 instead of 19-rc1? i.e.

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>19.0</version>
</dependency>

It is possible that the JAR bundled in eclipse is different from the one in your .m2repo. According to the version 19 javadoc the missing method should be there.



Please DO NOT REPLY directly to this email but go to StackOverflow:
http://stackoverflow.com/questions/40886468/how-to-fix-my-maven-dependencies-if-methods-from-com-google-common-base-stopwa/40954036#40954036
Reply all
Reply to author
Forward
0 new messages