基于IDEA的Maven工程創(chuàng)建方式
梳理Maven工程GAVP屬性
Maven工程相對(duì)之前的工程,多出一組gavp屬性,gav需要我們?cè)趧?chuàng)建項(xiàng)目的時(shí)指定,p有默認(rèn)值,后期通過(guò)配置文件修改。既然要填寫(xiě)的屬性,我們先行了解下這組屬性的含義!
Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四個(gè)屬性的縮寫(xiě),其中前三個(gè)是必要的,而 Packaging 屬性為可選項(xiàng)。
這四個(gè)屬性主要為每個(gè)項(xiàng)目在maven倉(cāng)庫(kù)總做一個(gè)標(biāo)識(shí),類(lèi)似人的《姓-名》。有了具體標(biāo)識(shí),方便maven軟件對(duì)項(xiàng)目進(jìn)行管理和互相引用!
GAV遵循一下規(guī)則
1) GroupID 格式:com.{公司/BU }.業(yè)務(wù)線(xiàn).[子業(yè)務(wù)線(xiàn)],最多 4 級(jí)。
- 說(shuō)明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一級(jí);子業(yè)務(wù)線(xiàn)可選。
- 正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang com.atguigu.java
2) ArtifactID 格式:產(chǎn)品線(xià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)做了向下兼容的功能性新增(新增類(lèi)、接口等)。
- 修訂號(hào):修復(fù) bug,沒(méi)有修改方法簽名的功能加強(qiáng),保持 API 兼容性。
例如: 初始→1.0.0 修改bug → 1.0.1 功能調(diào)整 → 1.1.1等
Packaging定義規(guī)則
指示將項(xiàng)目打包為什么類(lèi)型的文件,idea根據(jù)packaging值,識(shí)別maven項(xiàng)目類(lèi)型!
- 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),代表成功?。?/p>
插件方式創(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),可以幫助開(kāi)發(fā)者更容易地管理項(xiàng)目的依賴(lài)、構(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 # 開(kāi)發(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)目的依賴(lài)和構(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)文章
自定義一個(gè)簡(jiǎn)單的JDBC連接池實(shí)現(xiàn)方法
下面小編就為大家分享一篇自定義一個(gè)簡(jiǎn)單的JDBC連接池實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Spring項(xiàng)目中Ordered接口的應(yīng)用之全局過(guò)濾器(GlobalFilter)的順序控制
在Spring框架,尤其是Spring Cloud Gateway或Spring WebFlux項(xiàng)目中,Ordered接口扮演著重要的角色,特別是在實(shí)現(xiàn)全局過(guò)濾器(GlobalFilter)時(shí),用于控制過(guò)濾器執(zhí)行的優(yōu)先級(jí),下面將介紹如何在Spring項(xiàng)目中使用Ordered接口來(lái)管理Global Filter的執(zhí)行順序,需要的朋友可以參考下2024-06-06
詳解java中的PropertyChangeSupport與PropertyChangeListener
這篇文章主要介紹了詳解java中的PropertyChangeSupport與PropertyChangeListener的相關(guān)資料,需要的朋友可以參考下2017-09-09
基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線(xiàn)至服務(wù)器的方法
ChatGPT是一款基于自然語(yǔ)言處理技術(shù)的聊天機(jī)器人,ChatGPT可以模擬真實(shí)的人類(lèi)對(duì)話(huà),并能夠更貼近用戶(hù)的需求,提供更有價(jià)值的服務(wù),這篇文章主要介紹了基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線(xiàn)至服務(wù)器,需要的朋友可以參考下2023-02-02
Java Socket長(zhǎng)連接實(shí)現(xiàn)教程及標(biāo)準(zhǔn)示例
Java Socket長(zhǎng)連接提供了一種持久通信方式,適用于需要低延遲和高效率的網(wǎng)絡(luò)應(yīng)用,本文將詳細(xì)介紹如何創(chuàng)建Java Socket長(zhǎng)連接的客戶(hù)端和服務(wù)端,包括它們的工作原理、實(shí)現(xiàn)細(xì)節(jié)、異常處理以及性能優(yōu)化,感興趣的朋友跟隨小編一起看看吧2025-09-09
Spring Cloud Hystrix入門(mén)和Hystrix命令原理分析
這篇文章主要介紹了Spring Cloud Hystrix入門(mén)和Hystrix命令原理分析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
解決IDEA報(bào)錯(cuò)war?exploded?is?not?valid問(wèn)題
在使用IntelliJ?IDEA時(shí)遇到'[projectname]warexploded'無(wú)效的問(wèn)題,可以通過(guò)清除項(xiàng)目列表、重新導(dǎo)入項(xiàng)目和配置新的Tomcat來(lái)解決,確保在Tomcat配置中,將ApplicationContext修改為僅包含一個(gè)'/',這一方法或許能幫助遇到相似問(wèn)題的開(kāi)發(fā)者2024-09-09

