2013-10-11 77 views
2

我想用maven构建一个android应用程序,并且我想使用Spring Android框架。与Maven失败,Maven的Eclipse的插件2.9spring-android-auth maven神器构建错误

<dependencies> 
<dependency> 
    <groupId>org.springframework.android</groupId> 
    <artifactId>spring-android-rest-template</artifactId> 
    <version>1.0.1.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.android</groupId> 
    <artifactId>spring-android-auth</artifactId> 
    <version>1.0.1.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.android</groupId> 
    <artifactId>spring-android-core</artifactId> 
    <version>1.0.1.RELEASE</version> 
</dependency> 

楼:我已经添加了必要的依赖判断我的pom.xml作为。我也试图建立我的命令行的Maven 3.0.5项目,这两种方法对我说:

​​

如果我从我的pom.xml取出弹簧andoid-auth的相关性,该项目成功生成。但是,如果我只留下这个作为依赖关系,并删除其他所有内容,则错误将保持不变。

所以我想这是构建spring-android-auth工件的问题。我做错了什么,或者是否有人遇到同样的问题?我应该如何修复,如果它可以修复?

下面是该项目我的实际整体的pom.xml:

<?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> 
    <groupId>com.super.secret.project</groupId> 
    <artifactId>super-secret-project</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>apk</packaging> 
    <name>SuperSecretProject</name> 


    <properties> 
     <spring-android-version>1.0.1.RELEASE</spring-android-version> 
     <android-version>4.1.1.4</android-version> 
     <slidingmenu-version>1.3-SNAPSHOT</slidingmenu-version> 
     <lombok-version>1.12.2</lombok-version> 
     <android-annotations-version>2.2</android-annotations-version> 
     <maven-eclipse-plugin-version>2.9</maven-eclipse-plugin-version> 
     <android-platform>17</android-platform> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>org.springframework.android</groupId> 
      <artifactId>spring-android-rest-template</artifactId> 
      <version>${spring-android-version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.android</groupId> 
      <artifactId>spring-android-core</artifactId> 
      <version>${spring-android-version}</version> 
     </dependency> 


     <dependency> 
      <groupId>org.springframework.android</groupId> 
      <artifactId>spring-android-auth</artifactId> 
      <version>${spring-android-version}</version> 
     </dependency> 


     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>${android-version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.jeremyfeinstein.slidingmenu</groupId> 
      <artifactId>slidingmenu</artifactId> 
      <version>${slidingmenu-version}</version> 
      <type>jar</type> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>${lombok-version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.androidannotations</groupId> 
      <artifactId>androidannotations</artifactId> 
      <version>${android-annotations-version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.androidannotations</groupId> 
      <artifactId>androidannotations</artifactId> 
      <classifier>api</classifier> 
      <version>${android-annotations-version}</version> 
     </dependency> 

    </dependencies> 

    <build> 
     <finalName>${project.artifactId}</finalName> 
     <sourceDirectory>src</sourceDirectory> 

     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.7.0</version> 
       <extensions>true</extensions> 
       <configuration> 
        <sdk> 
         <platform>${android-platform}</platform> 
        </sdk> 
       </configuration> 
      </plugin> 

      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>${maven-eclipse-plugin-version}</version> 
       <configuration> 
        <downloadSources>false</downloadSources> 
        <downloadJavadocs>false</downloadJavadocs> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

预先感谢您!

回答

5

我想你的问题在于:spring-android-auth依赖关系, 这个依赖关系与:spring-android-core库冲突。

我建议你从它排除org.springframework.spring核心:

<dependency> 
    <groupId>org.springframework.android</groupId> 
    <artifactId>spring-android-auth</artifactId> 
    <version>${spring-android-version}</version> 
    <exclusions> 

    <!-- Exclude in favor of Spring Android Core --> 
    <exclusion> 
     <artifactId>spring-core</artifactId> 
     <groupId>org.springframework</groupId> 
    </exclusion> 

    </exclusions> 
</dependency> 
+0

非常感谢你,这是解决方案!我对maven很陌生,我不知道我可以,还必须排除重复的依赖关系。 –

+0

解决了我的错误:Android Dex:com.android.dex.DexException:多个dex文件定义了Lorg/springframework/core/ErrorCoded;谢谢! (IntelliJC 13 + Maven + AndroidAnnotations) – bentzy