이 문제는 Eclipse의 Android-Maven 플러그인이 분명히 두 개의 프로젝트 (Android 라이브러리 프로젝트 포함)에서 두 번 참조 된 전이 참조 및 참조를 인식하지 못하여 두 번 이상 포함했기 때문에 발생했습니다. Maven 이이 모든 것을 처리해야하지만 모든 것을 한 번만 포함하려면 hocus-pocus를 사용해야했습니다.
예를 들어, 핵심 라이브러리 globalmentor-core가 있는데 globalmentor-google 및 globalmentor-android (후자는 Android 라이브러리 임)에서 사용되었습니다. globalmentor-android에서 pom.xml
나는 의존성을 "제공됨"으로 표시하고 전 이적으로 포함 된 다른 라이브러리에서 제외해야했습니다.
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-core</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- android-maven-plugin can't seem to automatically keep this from being
included twice; it must therefore be included manually (either explicitly
or transitively) in dependent projects -->
<scope>provided</scope>
</dependency>
그런 다음 최종 응용 프로그램 에서 핵심 라이브러리를 명시 적으로 포함 하지 않고pom.xml
포함 경로 하나만 허용하려면 올바른 속임수를 사용해야했습니다 .
<!-- android-maven-plugin can't seem to automatically keep this from being
included twice -->
<!-- <dependency> -->
<!-- <groupId>com.globalmentor</groupId> -->
<!-- <artifactId>globalmentor-core</artifactId> -->
<!-- <version>1.0-SNAPSHOT</version> -->
<!-- </dependency> -->
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-google</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<!-- android-maven-plugin can't seem to automatically keep this from
being included twice -->
<exclusion>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-android</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>