Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
maven父pom依赖项继承版本,但不继承排除项_Maven_Pom.xml_Parent Pom - Fatal编程技术网

maven父pom依赖项继承版本,但不继承排除项

maven父pom依赖项继承版本,但不继承排除项,maven,pom.xml,parent-pom,Maven,Pom.xml,Parent Pom,我有一个包含所有项目版本和排除项的父pom 我想从孩子的父母那里得到同样的排斥,我如何才能做到这一点 儿子项目继承了父亲的版本 但是拿的是神器a,我希望他避免拿a 我怎么做 我的目标是让字母jar没有依赖关系 <project> <modelVersion>4.0.0</modelVersion> <artifactId>parent-pom</artifactId> <groupId>parent</gr

我有一个包含所有项目版本和排除项的父pom 我想从孩子的父母那里得到同样的排斥,我如何才能做到这一点

儿子项目继承了父亲的版本 但是拿的是神器a,我希望他避免拿a 我怎么做

我的目标是让字母jar没有依赖关系

<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>

4.0.0
母体聚甲醛
父母亲
1.0.0
聚甲醛
com.somthing.ltetters
旅行家
1.4
com.somthing.ltetters
A.


1.0.0
子项目
战争
3.9.0.1快照
母体聚甲醛
父母亲
0.1.0
com.somthing.ltetters
旅行家

如果您已经在父pom中指定了依赖项,那么它将被所有子工件继承,您无需再次指定它。如果您实际上不希望在默认情况下继承它,则改为在父pom中使用,然后在子项目中指定不带版本或排除项的依赖项。因此,您的家长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>
  ...

4.0.0
母体聚甲醛
父母亲
1.0.0
聚甲醛
com.somthing.ltetters
旅行家
1.4
com.somthing.ltetters
A.
...
...

所有子项目的外观仍然可以与您的问题中的相同。

如果您已经在父pom中指定了依赖项,那么它将被所有子项目继承,您无需再次指定它。如果您实际上不希望在默认情况下继承它,则改为在父pom中使用,然后在子项目中指定不带版本或排除项的依赖项。因此,您的家长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>
  ...

4.0.0
母体聚甲醛
父母亲
1.0.0
聚甲醛
com.somthing.ltetters
旅行家
1.4
com.somthing.ltetters
A.
...
...

所有的子项目看起来仍然和你的问题一样。

我不明白,在我有10个孩子需要排除的子项目中手动执行是我希望避免的情况mm,它不起作用,我可以在child:mvn dependency:tree中看到。我已经在一个玩具项目中尝试过了。确保已将更新的父项目安装到本地Maven存储库中。我已删除本地计算机上的.2存储库。。。再次,我要寻找的行为是在父pom中声明排除,而派生pom子不会通过传递方式获得排除的罐子,尽管它确实发生了。我在孩子身上使用了另一句话,所以他没有带走他的父亲我不明白,在我有10个孩子需要排除的情况下,在孩子身上手动执行mmmm,它不起作用,我可以在child:mvn dependency:tree中看到。我已经在一个玩具项目上尝试过。确保已将更新的父项目安装到本地Maven存储库中。我已删除本地计算机上的.2存储库。。。再次,我要寻找的行为是在父pom中声明排除,派生的pom子不会传递地得到这个排除的罐子,而它确实发生了。我在孩子身上使用了另一个版本,所以他没有带走他的父亲