ฉันพบปัญหานี้เนื่องจากปลั๊กอินของ Android-Maven ใน Eclipse ดูเหมือนจะไม่รู้จักการอ้างอิงสกรรมกริยาและการอ้างอิงที่อ้างอิงสองครั้งจากโครงการสองโครงการ (รวมถึงโครงการห้องสมุด Android) และรวมพวกเขามากกว่าหนึ่งครั้ง ฉันต้องใช้ hocus-pocus เพื่อให้ได้ทุกอย่างที่รวมไว้เพียงครั้งเดียวแม้ว่า Maven จะดูแลทั้งหมดนี้
ตัวอย่างเช่นฉันมี corement 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>