首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Maven 坐標詳解:groupId、artifactId、version、packaging、classifier 五大元素全面指南

     編輯:Java 綜合教學

Maven 坐標詳解:groupId、artifactId、version、packaging、classifier 五大元素全面指南

Maven 通過坐標唯一標識每個構件,實現依賴自動化解析與下載。坐標是 Maven 世界的「身份證」,理解它是掌握依賴管理的前提。

坐標五大元素

<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<packaging>jar</packaging>
<!-- classifier 不直接在 POM 定義,由插件生成附屬構件時指定 -->

元素詳細說明

元素是否必填含義與約定
groupId是項目隸屬的實際項目/組織標識。
• 通常與域名反向對應(如 com.company.project)。
• 一個實際項目可拆分多個 Maven 模塊,共享 groupId。
• 不應僅定義到公司級別,需體現具體項目。
artifactId是當前模塊在實際項目中的唯一標識。
• 推薦用實際項目名作為前綴(如 spring-core、spring-context)。
• 默認構件文件名:${artifactId}-${version}.${packaging}。
version是構件版本號。
• 遵循語義化版本:主版本.次版本.修訂版本[-SNAPSHOT]。
• SNAPSHOT 表示開發中快照版,發布版去掉 SNAPSHOT。
packaging否(默認 jar)打包方式,決定輸出文件副檔名。
• 常見:jar、war、pom(父項目/聚合項目)、ear、maven-plugin。
• 自定義打包需配置對應插件。
classifier否(不可直接定義)區分主構件的附屬構件。
• 由插件生成時指定:javadoc、sources、tests、shaded 等。
• 附屬構件坐標:groupId:artifactId:version:classifier:packaging。
• 例:junit-3.8.1-javadoc.jar、junit-3.8.1-sources.jar。

坐標與倉庫佈局的映射關係

本地/遠程倉庫目錄結構完全按坐標組織:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.21</version>
</dependency>
<!-- 附屬構件引用 -->
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.13.2</version>
  <classifier>sources</classifier>
</dependency>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved