อาร์ติแฟกต์จากการอ้างอิงสามารถแยกออกได้โดยการประกาศ<exclusions>องค์ประกอบภายใน<dependency>แต่ในกรณีนี้จำเป็นต้องแยกอาร์ติแฟกต์ที่สืบทอดมาจากโปรเจ็กต์หลัก ข้อความที่ตัดตอนมาของ POM ภายใต้การอภิปรายมีดังนี้:
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>jruby</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <artifactId>base</artifactId>
        <groupId>es.uniovi.innova</groupId>
        <version>1.0.0</version>
    </parent>
    <dependencies>      
        <dependency>
            <groupId>com.liferay.portal</groupId>
            <artifactId>ALL-DEPS</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
            <type>pom</type>
        </dependency>
    </dependencies>
</project>
baseสิ่งประดิษฐ์ขึ้นอยู่กับ   javax.mail:mail-1.4.jarและALL-DEPSขึ้นอยู่กับเวอร์ชันอื่นของไลบรารีเดียวกัน เนื่องจากความจริงที่ว่าmail.jarจากALL-DEPSที่มีอยู่กับสภาพแวดล้อมในการดำเนินการแม้จะไม่ได้ส่งออก collides กับที่มีอยู่ในผู้ปกครองซึ่งเป็นขอบเขตเป็นmail.jarcompile
วิธีแก้ปัญหาคือการกำจัด mail.jar ออกจาก POM หลัก แต่โปรเจ็กต์ส่วนใหญ่ที่สืบทอดฐานจำเป็นต้องใช้ (เช่นเดียวกับการพึ่งพา transtive สำหรับ log4j) ดังนั้นสิ่งที่ฉันต้องการจะทำคือการแยกไลบรารีของผู้ปกครองออกจากโปรเจ็กต์ลูกเนื่องจากสามารถทำได้หากbaseเป็นการพึ่งพาไม่ใช่ผู้ปกครอง:
...
    <dependency>
        <artifactId>base</artifactId>
        <groupId>es.uniovi.innova</groupId>
        <version>1.0.0</version>
        <type>pom<type>
        <exclusions>
          <exclusion>
             <groupId>javax.mail</groupId>
             <artifactId>mail</artifactId>
          </exclusion>
        </exclusions>
    </dependency>
...