Bağımlılıklardan gelen yapılar, bir <exclusions>öğe içinde bir öğe bildirilerek hariç tutulabilir. <dependency>Ancak bu durumda, bir üst projeden miras alınan bir yapıyı dışlamak gerekir. Tartışılan POM'dan bir alıntı aşağıdaki gibidir:
<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>
baseyapı aynı kitaplığın başka bir sürümüne bağlıdır javax.mail:mail-1.4.jarve ALL-DEPSbağlıdır. Ticari kullanımda mail.jargelen ALL-DEPSile çarpışır dışa değil, ancak işletme ortamı biri, mail.jarşekilde odaklanan ebeveyn bulunduğunucompile .
Bir çözüm mail.jar dosyasını ana POM'dan çıkarmak olabilir, ancak tabanı devralan projelerin çoğu buna ihtiyaç duyar (log4j için geçici bir bağımlılık olduğu gibi). Bu yüzden yapmak istediğim şey, ebeveynin kütüphanesini alt projeden çıkarmaktır , çünkü bu basebir bağımlılık olsaydı ve ebeveyn pom değil ise yapılabilirdi :
...
<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>
...