bit*_*xyz 3 dependency-management maven-3 maven
这是我的父母 pom
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.fish56</groupId>
<artifactId>MavenModules</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>dao</module>
</modules>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>import</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
这是我的子模块的 pom
<parent>
<artifactId>MavenModules</artifactId>
<groupId>com.github.fish56</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dao</artifactId>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我希望子模块可以继承父的依赖项,但它失败了。
我不能在我的孩子 pom 中使用 lombok 或 junit。
这是我的文件树
.
??? dao
? ??? pom.xml
? ??? src
? ??? target
??? pom.xml
Run Code Online (Sandbox Code Playgroud)
我认为应该有一种方法可以让一些依赖项成为所有模块的碎片,但我找不到解决方案。
在父POM,则之间的主要区别<dependencies>和<dependencyManagement>如下:
本<dependencies>节中指定的工件将始终作为子模块的依赖项包含在内。
<dependencyManagement>部分中指定的工件只有<dependencies>在子模块本身的部分中也指定时才会包含在子模块中。
请在以下链接中找到更多信息:
Maven中dependencyManagement和dependencies的区别
您导入 lombok BOM
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
<scope>import</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后你尝试将它用作依赖项。但 BOM 只是 dependencyManagement 条目的列表。它不能是子项目的依赖项。