2016-01-06 3 views
1

У меня есть родительский pom, который содержит все версии и исключения проектов. Я хотел бы иметь те же исключения из родителя в дочернем элементе, как я могу его достичь.maven parent pom dependencies Inherit version, но не наследует исключения

проект son-project наследует версию его отца , но принимает артефакт a, где я бы хотел, чтобы он избегал принимать , как я могу это сделать?

моя цель состоит в том, что есть письма банка без зависимости

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <artifactId>parent-pom</artifactId> 
    <groupId>parent</groupId> 
    <version>1.0.0</version> 
    <packaging>pom</packaging> 
    <dependencies> 
    <dependency> 
     <groupId>com.somthing.ltetters</groupId> 
     <artifactId>ltetters</artifactId> 
     <version>1.4</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.somthing.ltetters</groupId> 
       <artifactId>a</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    </dependencies> 

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>1.0.0</modelVersion> 
    <artifactId>son-project</artifactId> 
    <packaging>war</packaging> 
    <version>3.9.0.SNAPSHOT</version> 

    <parent> 
    <groupId>parent-pom</groupId> 
    <artifactId>parent</artifactId> 
    <version>0.1.0</version> 
    </parent> 
    <dependencies> 
    <dependency> 
     <groupId>com.somthing.ltetters</groupId> 
     <artifactId>ltetters</artifactId> 
    </dependency> 
    </dependencies> 

ответ

5

Если вы уже указали зависимость в родительском П, он будет наследоваться всем ребенок артефактов, и вам не нужно указывать его снова. Если вы действительно не хотите наследовать его по умолчанию, вместо этого используйте < > в родительском помпе, а затем укажите зависимость в дочернем проекте без версии или исключений. Итак, ваш родительский pom будет выглядеть так:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <artifactId>parent-pom</artifactId> 
    <groupId>parent</groupId> 
    <version>1.0.0</version> 
    <packaging>pom</packaging> 
    <dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>com.somthing.ltetters</groupId> 
     <artifactId>ltetters</artifactId> 
     <version>1.4</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.somthing.ltetters</groupId> 
       <artifactId>a</artifactId> 
      </exclusion> 
     </exclusions> 
     </dependency> 
    </dependencies> 
    ... 
    <dependencyManagement> 
    ... 

Все дочерние проекты все еще могут быть такими же, как в вашем вопросе.

+0

Я не понимал, делаю это вручную у ребенка, где у меня есть 10 детей, которых мне нужно исключить, - это ситуация, которую я хочу избежать –

+0

Я обновил ответ с примером родительского помпы –

+0

мммм, он не работает, я могу видеть это у ребенка: mvn dependency: tree –

Смежные вопросы