Я столкнулся с этой проблемой, потому что плагин Android-Maven в Eclipse, очевидно, не распознавал переходные ссылки и ссылки, на которые дважды ссылались несколько проектов (включая проект библиотеки Android), и включал их более одного раза.Мне пришлось использовать hocus-pocus, чтобы включить все только один раз, хотя Maven должен был позаботиться обо всем этом.
Например, у меня была базовая библиотека 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
Iпришлось использовать правильный трюк, чтобы разрешить только один путь включения - а также не , явно включающий библиотеку ядра:
<!-- 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>