Tôi gặp phải vấn đề này vì plugin Android-Maven trong Eclipse dường như không nhận ra các tham chiếu và tham chiếu bắc cầu được tham chiếu hai lần từ một vài dự án (bao gồm cả dự án thư viện Android) và bao gồm cả chúng nhiều lần. Tôi đã phải sử dụng h Focus-p Focus để có được mọi thứ chỉ bao gồm một lần, mặc dù Maven có nhiệm vụ phải lo tất cả việc này.
Ví dụ, tôi đã có một thư viện corementor-core, cũng được sử dụng bởi globalmentor-google và globalmentor-android (sau này là thư viện Android). Trong globalmentor-android, pom.xml
tôi đã phải đánh dấu sự phụ thuộc là "được cung cấp" cũng như loại trừ khỏi các thư viện khác trong đó nó được bao gồm quá mức:
<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>
Sau đó, trong ứng dụng cuối cùng, pom.xml
tôi đã phải sử dụng thủ thuật phù hợp để chỉ cho phép một đường dẫn bao gồm --- cũng như không bao gồm rõ ràng thư viện lõ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>