Maven:子模块不能继承父模块的依赖项

lb3vh1jj  于 9个月前  发布在  Maven
关注(0)|答案(2)|浏览(167)

这是我的父母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


我认为应该有一种方法,使一些依赖关系在所有模块之间共享,但我找不到解决方案。

tkclm6bt

tkclm6bt1#

在父POM中,<dependencies><dependencyManagement>之间的主要区别如下:
<dependencies>部分中指定的工件将ALWAYS作为子模块的依赖项包含在内。
<dependencyManagement>部分中指定的工件,如果它们也在子模块本身的<dependencies>部分中指定,则将**仅包含在子模块中。
请在以下链接中找到更多:
Differences between dependencyManagement and dependencies in Maven

cbeh67ev

cbeh67ev2#

导入LombokBOM

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.6</version>
            <scope>import</scope>
        </dependency>

字符串
然后你试着把它作为一个依赖项。但是BOM只是一个依赖项管理条目的列表。它不能是子项目的依赖项。

相关问题