这是我的父母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>
字符串
这是我的子模块的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>
型
我希望子模块可以继承父模块的依赖项,但它失败了。
我不能在我孩子的pom中使用Lombok岛或Junit。
这是我的文件树
.
├── dao
│ ├── pom.xml
│ ├── src
│ └── target
├── pom.xml
型
我认为应该有一种方法,使一些依赖关系在所有模块之间共享,但我找不到解决方案。
2条答案
按热度按时间tkclm6bt1#
在父
POM
中,<dependencies>
和<dependencyManagement>
之间的主要区别如下:<dependencies>
部分中指定的工件将ALWAYS作为子模块的依赖项包含在内。在
<dependencyManagement>
部分中指定的工件,如果它们也在子模块本身的<dependencies>
部分中指定,则将**仅包含在子模块中。请在以下链接中找到更多:
Differences between dependencyManagement and dependencies in Maven
cbeh67ev2#
导入LombokBOM
字符串
然后你试着把它作为一个依赖项。但是BOM只是一个依赖项管理条目的列表。它不能是子项目的依赖项。