如何創(chuàng)建Maven的Java和Web工程并運(yùn)行在Tomcat上
一、Maven介紹
Maven 是一款為 Java 項(xiàng)目管理構(gòu)建、依賴管理的工具(軟件),使用 Maven 可以自動(dòng)化構(gòu)建、測(cè)試、打包和發(fā)布項(xiàng)目,大大提高了開發(fā)效率和質(zhì)量。
二、Maven安裝步驟
1.下載后解壓到?jīng)]有空格、特殊字符和中文的目錄中
2.配置環(huán)境變量
3.查看版本
4.配置conf/settings.xml文件
4.1依賴本地緩存位置(本地倉(cāng)庫(kù)位置)
<!-- conf/settings.xml 55行 --> <localRepository>D:\apache-maven-3.8.1\repository</localRepository>
4.2配置國(guó)內(nèi)阿里鏡像
<!--在mirrors節(jié)點(diǎn)(標(biāo)簽)下添加中央倉(cāng)庫(kù)鏡像 160行附近--> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
4.3配置jdk版本項(xiàng)目構(gòu)建
<!--在profiles節(jié)點(diǎn)(標(biāo)簽)下添加jdk編譯版本 268行附近--> <profile> <id>jdk11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>11</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion> <maven.compiler.encoding>utf-8</maven.compiler.encoding> </properties> </profile>
5.IDEA配置本地Maven軟件
注意:
如果本地倉(cāng)庫(kù)地址不變化,只有一個(gè)原因,就是maven/conf/settings.xml配置文件編寫錯(cuò)誤!仔細(xì)檢查即可!一定保證User settings file對(duì)應(yīng)之前修改的settings.xml的路徑,若 不一致,選中Override復(fù)選框,手動(dòng)選擇配置文件。
三、基于IDEA創(chuàng)建Maven工程
1. 概念梳理Maven工程的GAVP
Maven工程相對(duì)之前的項(xiàng)目,多出一組gavp屬性,gav需要我們?cè)趧?chuàng)建項(xiàng)目的時(shí)候指定,p有默認(rèn)值,我們先行了解下這組屬性的含義:
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í),方便后期項(xiàng)目之間相互引用依賴等。
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
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) 主版本號(hào):當(dāng)做了不兼容的 API 修改,或者增加了能改變產(chǎn)品方向的新功能。
- 2) 次版本號(hào):當(dāng)做了向下兼容的功能性新增(新增類、接口等)。
- 3) 修訂號(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)目打包為什么類型的文件,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)做繼承的父工程。
2.IDEA構(gòu)建Maven Java SE工程
3.IDEA構(gòu)建Maven Java Web工程
3.1方式一:將普通Maven Java SE工程改為Maven Java Web工程
上面還是一個(gè)普通的Maven Java SE工程,要將其改為Maven Java Web工程,將當(dāng)前工程的打包方式設(shè)置為war包:
修改項(xiàng)目結(jié)構(gòu):
此時(shí),普通的Maven Java SE工程,就成功改為Maven Java Web工程了!
3.2方式二:使用插件JBLJavaToWeb創(chuàng)建
安裝插件JBLJavaToWeb
file / settings / plugins / marketplace
創(chuàng)建新的java maven工程:
右鍵,點(diǎn)擊JBLJavaToWeb
如果不顯示webapp,刷新一下:
3.3方式三: 使用IDEA自帶的骨架
刷新maven:
可能會(huì)缺少java源文件,手動(dòng)創(chuàng)建即可
4.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.jsp:Web 應(yīng)用的入口頁(yè)面。
- src/test/java:存放項(xiàng)目的測(cè)試代碼。
- src/test/resources:存放測(cè)試相關(guān)的資源文件,如測(cè)試配置文件等。
四、將Maven的Web工程部署到Tomcat中
新增一個(gè)index.html
配置Tomcat
點(diǎn)擊debug啟動(dòng),Tomcat啟動(dòng)成功!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis動(dòng)態(tài)<if>標(biāo)簽的使用
本文主要介紹了MyBatis動(dòng)態(tài)<if>標(biāo)簽的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05springboot配置druid多數(shù)據(jù)源的示例代碼
這篇文章主要介紹了springboot配置druid多數(shù)據(jù)源的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09Java如何調(diào)用TSC打印機(jī)進(jìn)行打印詳解
這篇文章主要給大家介紹了關(guān)于Java如何調(diào)用TSC打印機(jī)進(jìn)行打印的相關(guān)資料,文中介紹了三種方法,分別是兩種后臺(tái)打印以及JS打印 ,三種方法都給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧2018-07-07java實(shí)現(xiàn)題目以及選項(xiàng)亂序的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)題目以及選項(xiàng)亂序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03十分簡(jiǎn)單易懂的Java應(yīng)用程序性能調(diào)優(yōu)技巧分享
這篇文章主要介紹了十分簡(jiǎn)單易懂的Java性能調(diào)優(yōu)技巧分享,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)
下面小編就為大家?guī)?lái)一篇java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07idea集成shell運(yùn)行環(huán)境以及shell輸出中文亂碼的解決
這篇文章主要介紹了idea集成shell運(yùn)行環(huán)境以及shell輸出中文亂碼的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08