Android maven build(eclipse)失败,原因是;意外的顶级异常”;(使用odata4j依赖项)
我在构建android maven项目(EclipseM2e,android for maven)时遇到问题 “安装”目标将以以下方式继续:Android maven build(eclipse)失败,原因是;意外的顶级异常”;(使用odata4j依赖项),android,eclipse,maven,odata4j,Android,Eclipse,Maven,Odata4j,我在构建android maven项目(EclipseM2e,android for maven)时遇到问题 “安装”目标将以以下方式继续: [INFO] UNEXPECTED TOP-LEVEL EXCEPTION: [INFO] java.lang.IllegalArgumentException: already added: Ljavax/persistence/Access; [INFO] at com.android.dx.dex.file.ClassDefsSection.add
[INFO] UNEXPECTED TOP-LEVEL EXCEPTION:
[INFO] java.lang.IllegalArgumentException: already added: Ljavax/persistence/Access;
[INFO] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
我已将以下依赖项添加到项目中:
<dependency>
<groupId>org.odata4j</groupId>
<artifactId>odata4j-jersey</artifactId>
<version>0.7.0</version>
</dependency>
我做错什么了吗?我对maven还是很陌生
谢谢 这是因为您的构建中存在重复的类。如果Eclipse类路径包含多个同名/包的类,ADT将抛出s 我建议你跑步
mvn依赖关系:树
从中可以了解整个情况
[INFO] +- com.sun.jersey:jersey:jar:0.8-ea-SNAPSHOT:compil
[INFO] | +- javax.ws.rs:jsr311-api:jar:0.8:compile
[INFO] | \- asm:asm:jar:3.1:compile
[INFO] \- com.sun.jersey:jersey-client:jar:1.9.1:test
[INFO] \- com.sun.jersey:jersey-core:jar:1.9.1:test
重复项是从odata4j jersey
中通过传递方式提取的一些依赖项。为了修复它们,您需要在副本上添加如下内容:
<project>
...
<dependencies>
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
...
示例项目a
项目A
1
编译
示例项目B
B项目
我得到了解决方案:
似乎odata4j的两个依赖项:
eclipselink-2.1.2
javax.persistence
有一些共同的课程
因此,当一个或另一个依赖项被排除时,问题就解决了
看起来这只是android/adt的问题。通常您不需要排除单个工件的依赖项,是吗
依赖项现在如下所示:
<dependency>
<groupId>org.odata4j</groupId>
<artifactId>odata4j-core</artifactId>
<version>0.7.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
</exclusion>
</exclusions>
</dependency>
org.odata4j
odata4j型芯
0.7.0
org.eclipse.persistence
javax.persistence
非常感谢Mite提供的有用提示
问候,,
亚历克斯你好,谢谢你的回答。在依赖关系树中,我只看到一次javax持久性。所以我不知道这门课的第二次出现是从哪里来的。我真的不确定要在排除项中添加什么。请您将日志添加为comment
mvn dependency:tree-Dverbose
当然,我添加了依赖项输出。
<dependency>
<groupId>org.odata4j</groupId>
<artifactId>odata4j-core</artifactId>
<version>0.7.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
</exclusion>
</exclusions>
</dependency>