在子模块使用maven的clean的时候出现如下错误:
dependencies.dependency.version’ for com.github.pagehelper:pagehelper:jar is missing. @ com.chunxiansheng:pinyougou-dao:[unknown-version]
部分代码:
parent的pom.xml:
<!-- 集中定义依赖版本号 -->
<properties>
<pagehelper.version>4.0.0</pagehelper.version>
....
</properties>
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
...
<dependencies>
子类的pom.xml
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<dependencies>
错误原因:
仔细检查了父子类依赖不存在错误,版本兼容问题。是父类未添加 .dependencyManagement提供了子模块中可能用到的一些依赖,不会强制子模块引入依赖.
语法格式:
<dependencyManagement>
<dependencies>
...
</dependencies>
...
</dependencyManagement>
简单的使用:
父类:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactid>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子类:(只需要加上groupId 和artifactid即可)
<dependency>
<groupId>junit</groupId>
<artifactid>junit</artifactId>
</dependency>
(1)如果没有加上这个的话对于上面的例子就是个子类覆盖父类相应依赖的写法,还必须标记.
父类:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactid>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
子类:(覆盖父类,使用其他版本)
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactid>junit</artifactId>
<version>4.8.3</version>
<scope>test</scope>
</dependency>
</dependencies>
(2)当然如果没有,那么子类的可以直接 下不添加父类已存在的依赖,这样就是子类直接继承了父类。
父类:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactid>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
子类:
<dependencies>
</dependencies>
在执行Maven子模块的clean时遇到'dependencies.dependency.version'缺失错误,原因是父模块没有在.dependencyManagement中定义com.github.pagehelper:pagehelper的版本。正确做法包括在父模块中添加.dependencyManagement来管理子模块可能需要的依赖,或者在子模块中明确指定依赖及版本。未指定版本会导致子模块默认覆盖父模块的依赖配置。

被折叠的 条评论
为什么被折叠?



