如:${project.basedir}
是 Maven 的內置屬性,可以被 pom.xml 直接識別。它表示當前項目的根目錄(即包含 pom.xml 文件的目錄)。
Maven 內置的一些常用屬性:
- 項目相關:
${project.basedir} <!-- 項目根目錄,即包含pom.xml文件的目錄 -->
${project.build.directory} <!-- 構建目錄,默認為 target -->
${project.version} <!-- 項目版本 -->
${project.groupId} <!-- 項目的groupId -->
${project.artifactId} <!-- 項目的artifactId -->
- 實際使用示例:
<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>
- 也可以定義自己的屬性:
<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>
- 驗證屬性值:
你可以使用 Maven 命令來查看這些屬性的實際值:
mvn help:evaluate -Dexpression=project.basedir -q -DforceStdout
- 常見的目錄結構:
${project.basedir}/├── pom.xml└── src/└── main/├── java/└── resources/└── lib/├── scylla.jar└── mt_scylla.dll
所以,使用 ${project.basedir}
是完全可以的,而且是 Maven 推薦的做法,因為:
- 它是 Maven 標準屬性,所有 Maven 項目都支持
- 它提供了項目路徑的可移植性
- 不需要硬編碼絕對路徑
- 在不同操作系統上都能正常工作