基于IDEA的Maven工程創(chuàng)建方式
梳理Maven工程GAVP屬性
Maven工程相對(duì)之前的工程,多出一組gavp屬性,gav需要我們?cè)趧?chuàng)建項(xiàng)目的時(shí)指定,p有默認(rèn)值,后期通過(guò)配置文件修改。既然要填寫的屬性,我們先行了解下這組屬性的含義!
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四個(gè)屬性的縮寫,其中前三個(gè)是必要的,而 Packaging 屬性為可選項(xiàng)。
這四個(gè)屬性主要為每個(gè)項(xiàng)目在maven倉(cāng)庫(kù)總做一個(gè)標(biāo)識(shí),類似人的《姓-名》。有了具體標(biāo)識(shí),方便maven軟件對(duì)項(xiàng)目進(jìn)行管理和互相引用!
GAV遵循一下規(guī)則
1) GroupID 格式:com.{公司/BU }.業(yè)務(wù)線.[子業(yè)務(wù)線],最多 4 級(jí)。
- 說(shuō)明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一級(jí);子業(yè)務(wù)線可選。
- 正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang com.atguigu.java
2) ArtifactID 格式:產(chǎn)品線名-模塊名。語(yǔ)義不重復(fù)不遺漏,先到倉(cāng)庫(kù)中心去查證一下。
- 正例:tc-client / uic-api / tair-tool / bookstore
3) Version版本號(hào)格式推薦:主版本號(hào).次版本號(hào).修訂號(hào) 1.0.0
- 主版本號(hào):當(dāng)做了不兼容的 API 修改,或者增加了能改變產(chǎn)品方向的新功能。
- 次版本號(hào):當(dāng)做了向下兼容的功能性新增(新增類、接口等)。
- 修訂號(hào):修復(fù) bug,沒有修改方法簽名的功能加強(qiáng),保持 API 兼容性。
例如: 初始→1.0.0 修改bug → 1.0.1 功能調(diào)整 → 1.1.1等
Packaging定義規(guī)則
指示將項(xiàng)目打包為什么類型的文件,idea根據(jù)packaging值,識(shí)別maven項(xiàng)目類型!
- packaging 屬性為 jar(默認(rèn)值),代表普通的Java工程,打包以后是.jar結(jié)尾的文件。
- packaging 屬性為 war,代表Java的web工程,打包以后.war結(jié)尾的文件。
- packaging 屬性為 pom,代表不會(huì)打包,用來(lái)做繼承的父工程。
Idea構(gòu)建Maven JavaSE工程
注意:此處省略了version,直接給了一個(gè)默認(rèn)值<version>1.0-SNAPSHOT</version>
自己后期可以在項(xiàng)目中隨意修改!


Idea構(gòu)建Maven JavaEE工程
手動(dòng)創(chuàng)建
- 創(chuàng)建一個(gè)javasemaven工程
- 手動(dòng)添加web項(xiàng)目結(jié)構(gòu)文件
- 注意:結(jié)構(gòu)和命名固定

修改pom.xml文件打包方式
修改位置:項(xiàng)目下/pom.xml
<groupId>com.atguigu</groupId> <artifactId>maven_parent</artifactId> <version>1.0-SNAPSHOT</version> <!-- 新增一列打包方式packaging --> <packaging>war</packaging>
刷新和校驗(yàn)

項(xiàng)目的webapp文件夾出現(xiàn)小藍(lán)點(diǎn),代表成功!!
插件方式創(chuàng)建

安裝插件JBLJavaToWeb
file / settings / plugins / marketplace

創(chuàng)建一個(gè)javasemaven工程
右鍵、使用插件快速補(bǔ)全web項(xiàng)目
Maven工程項(xiàng)目結(jié)構(gòu)說(shuō)明
Maven 是一個(gè)強(qiáng)大的構(gòu)建工具,它提供一種標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu),可以幫助開發(fā)者更容易地管理項(xiàng)目的依賴、構(gòu)建、測(cè)試和發(fā)布等任務(wù)。
以下是 Maven Web 程序的文件結(jié)構(gòu)及每個(gè)文件的作用:
|-- pom.xml # Maven 項(xiàng)目管理文件
|-- src
|-- main # 項(xiàng)目主要代碼
| |-- java # Java 源代碼目錄
| | `-- com/example/myapp # 開發(fā)者代碼主目錄
| | |-- controller # 存放 Controller 層代碼的目錄
| | |-- service # 存放 Service 層代碼的目錄
| | |-- dao # 存放 DAO 層代碼的目錄
| | `-- model # 存放數(shù)據(jù)模型的目錄
| |-- resources # 資源目錄,存放配置文件、靜態(tài)資源等
| | |-- log4j.properties # 日志配置文件
| | |-- spring-mybatis.xml # Spring Mybatis 配置文件
| | `-- static # 存放靜態(tài)資源的目錄
| | |-- css # 存放 CSS 文件的目錄
| | |-- js # 存放 JavaScript 文件的目錄
| | `-- images # 存放圖片資源的目錄
| `-- webapp # 存放 WEB 相關(guān)配置和資源
| |-- WEB-INF # 存放 WEB 應(yīng)用配置文件
| | |-- web.xml # Web 應(yīng)用的部署描述文件
| | `-- classes # 存放編譯后的 class 文件
| `-- index.html # Web 應(yīng)用入口頁(yè)面
`-- test # 項(xiàng)目測(cè)試代碼
|-- java # 單元測(cè)試目錄
`-- resources # 測(cè)試資源目錄
pom.xml:Maven 項(xiàng)目管理文件,用于描述項(xiàng)目的依賴和構(gòu)建配置等信息。src/main/java:存放項(xiàng)目的 Java 源代碼。src/main/resources:存放項(xiàng)目的資源文件,如配置文件、靜態(tài)資源等。src/main/webapp/WEB-INF:存放 Web 應(yīng)用的配置文件。src/main/webapp/index.html:Web 應(yīng)用的入口頁(yè)面。src/test/java:存放項(xiàng)目的測(cè)試代碼。src/test/resources:存放測(cè)試相關(guān)的資源文件,如測(cè)試配置文件等。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis里映射文件sql語(yǔ)句爆紅問(wèn)題及解決方案
文章介紹了在MyBatis映射文件中SQL語(yǔ)句爆紅的問(wèn)題及其解決方法,解決方法是在設(shè)置中將SQL的全局方言設(shè)為None,然后應(yīng)用并確認(rèn)設(shè)置即可2025-03-03
關(guān)于spring項(xiàng)目中無(wú)法加載resources下文件問(wèn)題及解決方法
在學(xué)習(xí)Spring過(guò)程中,TestContext框架試圖檢測(cè)一個(gè)默認(rèn)的XML資源位置,再resources下創(chuàng)建了一個(gè)com.example的文件夾,執(zhí)行時(shí),報(bào)錯(cuò),本文給大家介紹spring項(xiàng)目中無(wú)法加載resources下文件,感興趣的朋友跟隨小編一起看看吧2023-10-10
mybatis類型處理器JSR310標(biāo)準(zhǔn)詳解
這篇文章主要介紹了mybatis類型處理器JSR310標(biāo)準(zhǔn)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Java中實(shí)現(xiàn)InputStream轉(zhuǎn)換為String的多種方法
在Java編程中,經(jīng)常會(huì)遇到需要將InputStream對(duì)象中的數(shù)據(jù)轉(zhuǎn)換為String類型的需求,例如,讀取文件或者處理其他輸入流時(shí),為了方便后續(xù)處理,可能需要將輸入流中的文本數(shù)據(jù)轉(zhuǎn)換為字符串,本文將介紹多種將InputStream轉(zhuǎn)換為String的方法,需要的朋友可以參考下2025-06-06
如何去除Java中List集合中的重復(fù)數(shù)據(jù)
這篇文章主要介紹了Java中List集合去除重復(fù)數(shù)據(jù)的方法,對(duì)大家的工作或?qū)W習(xí)有一定價(jià)值,有需求的朋友可以參考下2020-05-05
解讀Integer類的parseInt和valueOf的區(qū)別
這篇文章主要介紹了解讀Integer類的parseInt和valueOf的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

