2014-02-28 104 views
0

我是新的Google Calendar API。我在這裏要做的是使用用戶提供的電子郵件將活動發佈到Google日曆。我現在的問題是,當我試圖做配置,我得到這個異常:我無法找到使用Maven的com.google.api.client.util.Preconditions的依賴關係

Caused by: java.lang.ClassNotFoundException: com.google.api.client.util.Preconditions 

我嘗試了多種不同版本的谷歌API的,但我找不到它的jar包含此類。我的代碼中導致此異常的部分是:

GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
       httpTransport, jsonFactory, clientId, clientSecret, 
       Arrays.asList(CalendarScopes.CALENDAR)).setAccessType("online") 
       .setApprovalPrompt("auto").build(); 

在此先感謝任何願意幫助的人。

這是我的POM文件:

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 


    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 


    <licenses> 
     <license> 
      <name>Apache License, Version 2.0</name> 
      <distribution>repo</distribution> 
      <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> 
     </license> 
    </licenses> 

    <properties> 
     <!-- Explicitly declaring the source encoding eliminates the following 
      message: --> 
     <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
      resources, i.e. build is platform dependent! --> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

     <!-- JBoss dependency versions --> 
     <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin> 

     <!-- Define the version of the JBoss BOMs we want to import to specify 
      tested stacks. --> 
     <version.jboss.bom>1.0.7.Final</version.jboss.bom> 


     <!-- other plugin versions --> 
     <version.surefire.plugin>2.10</version.surefire.plugin> 
     <version.war.plugin>2.1.1</version.war.plugin> 
     <version.compiler.plugin>3.1</version.compiler.plugin> 

     <!-- maven-compiler-plugin --> 
     <maven.compiler.target>1.7</maven.compiler.target> 
     <maven.compiler.source>1.7</maven.compiler.source> 
    </properties> 

    <repositories> 
     <repository> 
      <id>jboss-repo</id> 
      <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url> 
     </repository> 
     <repository> 
      <id>prime-repo</id> 
      <name>PrimeFaces Maven Repository</name> 
      <url>http://repository.primefaces.org</url> 
     </repository> 
     <repository> 
      <id>mobicents-public-repository-group</id> 
      <name>Mobicens Public Maven Repository Group</name> 
      <url>https://oss.sonatype.org/content/groups/public</url> 
      <layout>default</layout> 
      <releases> 
       <enabled>true</enabled> 
       <updatePolicy>never</updatePolicy> 
      </releases> 
      <snapshots> 
       <enabled>true</enabled> 
       <updatePolicy>never</updatePolicy> 
      </snapshots> 
     </repository> 
    </repositories> 

    <dependencyManagement> 
     <dependencies> 
      <!-- JBoss distributes a complete set of Java EE 6 APIs including a Bill 
       of Materials (BOM). A BOM specifies the versions of a "stack" (or a collection) 
       of artifacts. We use this here so that we always get the correct versions 
       of artifacts. Here we use the jboss-javaee-6.0-with-tools stack (you can 
       read this as the JBoss stack of the Java EE 6 APIs, with some extras tools 
       for your project, such as Arquillian for testing) and the jboss-javaee-6.0-with-hibernate 
       stack you can read this as the JBoss stack of the Java EE 6 APIs, with extras 
       from the Hibernate family of projects) --> 
      <dependency> 
       <groupId>org.jboss.bom</groupId> 
       <artifactId>jboss-javaee-6.0-with-tools</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.jboss.bom</groupId> 
       <artifactId>jboss-javaee-6.0-with-hibernate</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
      <dependency> 
       <groupId>org.jboss.bom</groupId> 
       <artifactId>jboss-javaee-6.0-with-security</artifactId> 
       <version>${version.jboss.bom}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <dependencies> 

     <!-- First declare the APIs we depend on and need for compilation. All 
      of them are provided by JBoss AS 7 --> 

     <!-- Import the CDI API, we use provided scope as the API is included in 
      JBoss AS 7 --> 
     <dependency> 
      <groupId>javax.enterprise</groupId> 
      <artifactId>cdi-api</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Import the Common Annotations API (JSR-250), we use provided scope 
      as the API is included in JBoss AS 7 --> 
     <dependency> 
      <groupId>org.jboss.spec.javax.annotation</groupId> 
      <artifactId>jboss-annotations-api_1.1_spec</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Import the JAX-RS API, we use provided scope as the API is included 
      in JBoss AS 7 --> 
     <dependency> 
      <groupId>org.jboss.spec.javax.ws.rs</groupId> 
      <artifactId>jboss-jaxrs-api_1.1_spec</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Import the JPA API, we use provided scope as the API is included in 
      JBoss AS 7 --> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Import the EJB API, we use provided scope as the API is included in 
      JBoss AS 7 --> 
     <dependency> 
      <groupId>org.jboss.spec.javax.ejb</groupId> 
      <artifactId>jboss-ejb-api_3.1_spec</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- JSR-303 (Bean Validation) Implementation --> 
     <!-- Provides portable constraints such as @Email --> 
     <!-- Hibernate Validator is shipped in JBoss AS 7 --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <scope>provided</scope> 
      <exclusions> 
       <exclusion> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-api</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

     <!-- Import the JSF API, we use provided scope as the API is included in 
      JBoss AS 7 --> 
     <dependency> 
      <groupId>org.jboss.spec.javax.faces</groupId> 
      <artifactId>jboss-jsf-api_2.1_spec</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Now we declare any tools needed --> 

     <!-- Annotation processor to generate the JPA 2.0 metamodel classes for 
      typesafe criteria queries --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-jpamodelgen</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Annotation processor that raising compilation errors whenever constraint 
      annotations are incorrectly used. --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator-annotation-processor</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <!-- Needed for running tests (you may also use TestNG) --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <!-- Optional, but highly recommended --> 
     <!-- Arquillian allows you to test enterprise code such as EJBs and Transactional(JTA) 
      JPA from JUnit/TestNG --> 
     <dependency> 
      <groupId>org.jboss.arquillian.junit</groupId> 
      <artifactId>arquillian-junit-container</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.arquillian.protocol</groupId> 
      <artifactId>arquillian-protocol-servlet</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.spec.javax.el</groupId> 
      <artifactId>jboss-el-api_2.2_spec</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.antlr</groupId> 
      <artifactId>ST4</artifactId> 
      <version>4.0.7</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>4.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.extensions</groupId> 
      <artifactId>primefaces-extensions</artifactId> 
      <version>1.1.0</version> 
     </dependency> 

     <dependency> 
      <groupId>joda-time</groupId> 
      <artifactId>joda-time</artifactId> 
      <version>2.2</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.0</version> 
     </dependency> 

     <!-- For File upload tag --> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.4</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
      <version>2.6</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.8</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-beanutils</groupId> 
      <artifactId>commons-beanutils</artifactId> 
      <version>1.8.3</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>3.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.3</version> 
     </dependency> 

     <!-- For MimeType detection of uploaded files --> 
     <dependency> 
      <groupId>jmimemagic</groupId> 
      <artifactId>jmimemagic</artifactId> 
      <version>0.1.2</version> 
      <scope>compile</scope> 
     </dependency> 

     <!-- For splitting pdf into individual pages --> 
     <dependency> 
      <groupId>com.itextpdf</groupId> 
      <artifactId>itextpdf</artifactId> 
      <version>5.3.4</version> 
     </dependency> 

     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.5</version> 
     </dependency> 

     <dependency> 
      <groupId>org.omnifaces</groupId> 
      <artifactId>omnifaces</artifactId> 
      <version>1.6.3</version> 
     </dependency> 

     <!-- SIP servlet, cool stuff starts here --> 
     <dependency> 
      <groupId>org.mobicents.servlet.sip</groupId> 
      <artifactId>sip-servlets-spec</artifactId> 
      <version>2.1.0-SNAPSHOT</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.mobicents.servlet.sip</groupId> 
      <artifactId>sip-servlets-client</artifactId> 
      <version>2.1.0-SNAPSHOT</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.2.4</version> 
     </dependency> 

     <dependency> 
      <groupId>com.google.apis</groupId> 
      <artifactId>google-api-services-calendar</artifactId> 
      <version>v3-rev74-1.17.0-rc</version> 
     </dependency> 

     <dependency> 
      <groupId>com.google.api-client</groupId> 
      <artifactId>google-api-client</artifactId> 
      <version>1.17.0-rc</version> 
     </dependency> 

     <dependency> 
      <groupId>com.google.http-client</groupId> 
      <artifactId>google-http-client-jackson2</artifactId> 
      <version>1.12.0-beta</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.10-beta1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>bootstrap</artifactId> 
      <version>1.0.10</version> 
     </dependency> 

     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.as</groupId> 
      <artifactId>jboss-as-controller-client</artifactId> 
      <version>7.2.0.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.as.plugins</groupId> 
      <artifactId>jboss-as-maven-plugin</artifactId> 
      <version>7.5.Final</version> 
      <scope>runtime</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.spec.javax.servlet</groupId> 
      <artifactId>jboss-servlet-api_3.0_spec</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.seam.security</groupId> 
      <artifactId>seam-security</artifactId> 
      <version>3.2.0.Final</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>com.sun.jersey</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>1.8</version> 
     </dependency> 

     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>1.8.5</version> 
     </dependency> 

     <dependency> 
      <groupId>org.jboss.seam.faces</groupId> 
      <artifactId>seam-faces</artifactId> 
      <version>3.2.0.Final</version> 
      <scope>compile</scope> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.jsr107cache</groupId> 
      <artifactId>jsr107cache</artifactId> 
      <version>1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.jdo</groupId> 
      <artifactId>jdo2-api</artifactId> 
      <version>2.3-eb</version> 
     </dependency> 

    </dependencies> 


    <build> 
     <!-- Maven will append the version to the finalName (which is the name 
      given to the generated war, and hence the context root) --> 
     <finalName>${project.artifactId}</finalName> 
     <plugins> 
      <!-- Compiler plugin enforces Java 1.6 compatibility and activates annotation 
       processors --> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${version.compiler.plugin}</version> 
       <configuration> 
        <source>${maven.compiler.source}</source> 
        <target>${maven.compiler.target}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>${version.war.plugin}</version> 
       <configuration> 
        <!-- Java EE 6 doesn't require web.xml, Maven needs to catch up! --> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
      <!-- The JBoss AS plugin deploys your war to a local JBoss AS container --> 
      <!-- To use, run: mvn package jboss-as:deploy --> 
      <plugin> 
       <groupId>org.jboss.as.plugins</groupId> 
       <artifactId>jboss-as-maven-plugin</artifactId> 
       <version>${version.jboss.maven.plugin}</version> 
      </plugin> 
     </plugins> 
    </build> 

    <profiles> 
     <profile> 
      <!-- The default profile skips all tests, though you can tune it to run 
       just unit tests based on a custom pattern --> 
      <!-- Seperate profiles are provided for running all tests, including Arquillian 
       tests that execute in the specified container --> 
      <id>default</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <build> 
       <plugins> 
        <plugin> 
         <artifactId>maven-surefire-plugin</artifactId> 
         <version>${version.surefire.plugin}</version> 
         <configuration> 
          <skip>true</skip> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

     <profile> 
      <!-- An optional Arquillian testing profile that executes tests in your 
       JBoss AS instance --> 
      <!-- This profile will start a new JBoss AS instance, and execute the 
       test, shutting it down when done --> 
      <!-- Run with: mvn clean test -Parq-jbossas-managed --> 
      <id>arq-jbossas-managed</id> 
      <dependencies> 
       <dependency> 
        <groupId>org.jboss.as</groupId> 
        <artifactId>jboss-as-arquillian-container-managed</artifactId> 
        <scope>test</scope> 
       </dependency> 
      </dependencies> 
     </profile> 

     <profile> 
      <!-- An optional Arquillian testing profile that executes tests in a remote 
       JBoss AS instance --> 
      <!-- Run with: mvn clean test -Parq-jbossas-remote --> 
      <id>arq-jbossas-remote</id> 
      <dependencies> 
       <dependency> 
        <groupId>org.jboss.as</groupId> 
        <artifactId>jboss-as-arquillian-container-remote</artifactId> 
        <scope>test</scope> 
       </dependency> 
      </dependencies> 
     </profile> 

     <profile> 
      <!-- When built in OpenShift the 'openshift' profile will be used when 
       invoking mvn. --> 
      <!-- Use this profile for any OpenShift specific customization your app 
       will need. --> 
      <!-- By default that is to put the resulting archive into the 'deployments' 
       folder. --> 
      <!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html --> 
      <id>openshift</id> 
      <build> 
       <plugins> 
        <plugin> 
         <artifactId>maven-war-plugin</artifactId> 
         <version>${version.war.plugin}</version> 
         <configuration> 
          <outputDirectory>deployments</outputDirectory> 
          <warName>ROOT</warName> 
         </configuration> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 

    </profiles> 

</project> 
+0

請顯示您的pom文件? – khmarbaise

+0

@khmarbaise感謝您注意到我的問題,我在我的文章中添加了pom文件 –

回答

1

似乎有模塊google-api-clientgoogle-http-client-jackson2之間版本的衝突。它們必須是相同的版本1.17.0-rc

+0

謝謝!我想我必須注意到這一點,總是檢查一起工作的依賴版本。看起來他們有更好的版本。 –