FusionOne HCI-存储虚拟化

创作内容不易,学习的朋友麻烦关注下博主,后面学习不迷路。有不会的问题也可以论坛咨询博主,博主也会及时回复。

博主也创建了一个it知识共享互助群,有兴趣的小伙伴也可以加我微信,博主给你拉进群(xiaotiancaio180)


1.硬件介质和接口

机械盘和固态盘

硬件接口:

IDE接口:

SCSI接口:

SATA接口:

SAS接口:

PCIe接口:

接口优点:

2.存储类型

DAS:

SAN(存储本身没有文件系统):

NAS(存储本身有文件系统):

CIFS = SAMBA

3.集中式存储和分布式存储

4.块存储

5.iSCSI协议

6.文件存储-定义与使用方式

7.对象存储

定义与使用

总结


我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

这个错误: ``` [ERROR] 'version' must be a constant version but is '${vms-local-hci-device-connector-version}'. @ line 17, column 14 ``` 出现在执行 `mvn clean` 时,说明 Maven 在解析项目 POM 文件(`pom.xml`)的过程中遇到了 **无法解析的版本占位符 `${vms-local-hci-device-connector-version}`**。 --- ### ✅ 错误原因详解 Maven 要求每个模块的 `<version>` 必须是一个**明确的、常量形式的版本号**(如 `1.0.0-SNAPSHOT`),不能是未定义或未解析的属性引用(如 `${xxx}`)。即使你希望用属性来统一管理版本,也必须确保该属性在 POM 中被正确定义。 #### ❌ 出错示例: ```xml <groupId>com.tplink.cdd</groupId> <artifactId>vms-local-hci-device-connector</artifactId> <version>${vms-local-hci-device-connector-version}</version> <!-- 错误!属性未定义 --> ``` 如果 `${vms-local-hci-device-connector-version}` 没有在当前 POM 或父 POM 中通过 `<properties>` 定义,则 Maven 就会报这个错误。 --- ### ✅ 解决方案 你需要确保 `${vms-local-hci-device-connector-version}` 这个属性已经被定义。以下是几种常见修复方式: --- #### ✅ 方案 1:在当前 POM 的 `<properties>` 中定义该属性 修改 `vms-local-hci-device-connector/pom.xml`,添加 `<properties>` 块: ```xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tplink.cdd</groupId> <artifactId>vms-local-hci-device-connector</artifactId> <!-- 方法1:先定义属性 --> <properties> <vms-local-hci-device-connector-version>1.2.0-SNAPSHOT</vms-local-hci-device-connector-version> </properties> <version>${vms-local-hci-device-connector-version}</version> ... </project> ``` ✅ 推荐做法:将所有模块共用版本集中定义在根项目的 `pom.xml` 的 `<properties>` 中。 --- #### ✅ 方案 2:使用父 POM 统一管理版本(推荐) 如果你有一个父项目(聚合项目),应该在父 POM 中定义该属性,并让子模块继承它。 ##### 父 POM 示例(root/pom.xml): ```xml <project> <groupId>com.tplink.cdd</groupId> <artifactId>vms-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <properties> <vms-local-hci-device-connector-version>1.2.0-SNAPSHOT</vms-local-hci-device-connector-version> </properties> <modules> <module>vms-local-hci-device-connector</module> ... </modules> </project> ``` ##### 子模块 pom.xml: ```xml <project> <parent> <groupId>com.tplink.cdd</groupId> <artifactId>vms-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>vms-local-hci-device-connector</artifactId> <version>${vms-local-hci-device-connector-version}</version> </project> ``` 这样就能正确继承并解析属性。 --- #### ✅ 方案 3:直接写死版本(临时解决) 如果不打算统一管理,也可以直接替换为具体值: ```xml <version>1.2.0-SNAPSHOT</version> ``` 但这不利于多模块版本同步,不推荐长期使用。 --- #### ✅ 方案 4:检查是否遗漏激活 Profile 有时属性只在某个 **Profile** 中定义了,但你没有激活它。 例如: ```xml <profiles> <profile> <id>dev</id> <properties> <vms-local-hci-device-connector-version>1.1.0-SNAPSHOT</vms-local-hci-device-connector-version> </properties> </profile> </profiles> ``` 此时你需要显式激活 profile 才能解析: ```bash mvn clean -Pdev ``` 否则属性为空,导致解析失败。 --- ### 🔍 如何排查? 1. 打开 `pom.xml` 查找 `${vms-local-hci-device-connector-version}` 2. 全局搜索整个项目中是否有地方定义了这个属性: ```bash grep -r "vms-local-hci-device-connector-version" . ``` 3. 检查是否依赖外部 `settings.xml` 或 CI 变量注入?如果是,请确认环境变量已设置。 --- ### ⚠️ 注意事项 - Maven 的 `<version>` 不支持动态表达式(如 `${env.VERSION}`、`${project.basedir}` 等) - 属性必须在 POM 解析阶段就可用,不能延迟到构建阶段 - 使用 `<dependencyManagement>` 或 `<pluginManagement>` 时也要注意版本不能是未解析的属性 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小天才哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值