当前位置: 首页 > web >正文

${project.basedir}延申出来的Maven内置的一些常用属性

如:${project.basedir} 是 Maven 的内置属性,可以被 pom.xml 直接识别。它表示当前项目的根目录(即包含 pom.xml 文件的目录)。

Maven 内置的一些常用属性:

  1. 项目相关
${project.basedir}        <!-- 项目根目录,即包含pom.xml文件的目录 -->
${project.build.directory} <!-- 构建目录,默认为 target -->
${project.version}        <!-- 项目版本 -->
${project.groupId}        <!-- 项目的groupId -->
${project.artifactId}     <!-- 项目的artifactId -->
  1. 实际使用示例
<dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/scylla.jar</systemPath>
</dependency>
  1. 也可以定义自己的属性
<properties><lib.dir>${project.basedir}/src/main/resources/lib</lib.dir>
</properties><dependencies><dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${lib.dir}/scylla.jar</systemPath></dependency>
</dependencies>
  1. 验证属性值
    你可以使用 Maven 命令来查看这些属性的实际值:
mvn help:evaluate -Dexpression=project.basedir -q -DforceStdout
  1. 常见的目录结构
${project.basedir}/├── pom.xml└── src/└── main/├── java/└── resources/└── lib/├── scylla.jar└── mt_scylla.dll

所以,使用 ${project.basedir} 是完全可以的,而且是 Maven 推荐的做法,因为:

  1. 它是 Maven 标准属性,所有 Maven 项目都支持
  2. 它提供了项目路径的可移植性
  3. 不需要硬编码绝对路径
  4. 在不同操作系统上都能正常工作
http://www.xdnf.cn/news/15055.html

相关文章:

  • 编码器(Encoder)和解码器(Decoder)
  • 暑假复习篇之图像识别①
  • 社区云管家 - 智慧生活新方式 ——仙盟创梦IDE
  • 常见前端开发问题的解决办法
  • 用 Spring Boot + Redis 实现哔哩哔哩弹幕系统(上篇博客改进版)
  • 蓝桥杯 第十六届(2025)真题思路复盘解析
  • 软件设计与重构
  • Android UI 组件系列(四):EditText 使用详解与输入限制
  • 数据结构:数组:合并数组(Merging Arrays)
  • 大学人才引进初试试题(开卷)
  • IDEA Maven报错 无法解析 com.taobao:parent:pom:1.0.1【100%解决 此类型问题】
  • Amazon Lightsail 全解析:中小企业上云
  • 【AI智能体】智能音视频-基于乐鑫 ESP32 实现音视频通话
  • 数据库|达梦DM数据库配置实例步骤
  • 【读论文】GLM-4.1V-Thinking 解读:用强化学习解锁 VLM 的通用推理能力
  • 转换狂魔,Modbus TCP转Profinet网关打通视觉传感线连接之路
  • Sigmoid Loss for Language Image Pre-Training
  • Java教程:【程序调试技巧】入门
  • Paimon本地表查询引擎LocalTableQuery详解
  • Spring AI:ETL Pipeline
  • pytorch深度学习-ResNet残差网络-CIFAR-10
  • Terraform `for_each` 精讲:优雅地自动化多域名证书验证
  • el-button传入icon用法可能会出现的问题
  • 【ES实战】ES客户端线程量分析
  • 3423. 循环数组中相邻元素的最大差值 — day97
  • OpenCV在Visual Studio 2022下的配置
  • loam的scanRegistration.cpp文件学习
  • 深度剖析:Ceph分布式存储系统架构
  • Html+Css+JavaScript+Vue+Axios入门
  • 计算机网络:(八)网络层(中)IP层转发分组的过程与网际控制报文协议 ICMP