一、整合之前
整合之前,我們都是使用本地的 Tomcat 服務器進行開發測試,最最頭疼的一個問題就是每次做項目都要手動導入 jar
包,隨着功能越來越多導入的 jar
包也越來越多,導致我們的項目變得很大,運維很頭疼。
maven 正是解決這一問題的,當然還有 gradle,不過現在 javaweb
項目一般都是 maven
管理,所以我們也用 maven。
二、整合步驟
這裏以 IDEA
演示如何使用 maven
創建一個 javaweb
項目:
# 大前提
大前提是你的 IDEA 已經配置好 maven 了,下面這張圖是配置好的界面,如果你還沒有配置,點擊這裏:https://blog.csdn.net/weixin_43941364/article/details/104667393 。
1、new project
新建一個項目, 輸入 webapp 可以快速定位:
然後展開它,選擇第一個正式版本:
這裏解釋一下這是在幹嘛,這就是讓 maven 給我們生成一個 模板,這樣創建完項目之後就會自動生成 web 目錄,而且會配置好 facts
。
下面點擊確定,然後輸入項目相關信息即可。
之後 maven 會去加載文件,等一會之後就好了,生成完成之後項目結構是這樣的:
這只是模板,我們可以根據自己的需求隨意更改,比如這裏我們 JDK 的版本改爲和我的項目內容一致:
下面是最關鍵的一步,爲了整合 Tomcat,我們必須在 maven
當中配置,告訴 maven
我們需要 tomcat,這樣他纔會給你生成。
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
我們在build
標籤中加入 plugins
標籤,裏面配置上面的內容。
port
:端口號,和 tomcat 同理path
:項目的絕對路徑,如果設置成test
訪問的時候要加上/test
,不寫默認爲根路徑。
然後打開右側的 maven
窗口,你會發現 tomcat
插件已經裝好了。
如果你沒有,我建議你將 maven 設置爲如下配置:
然後我們來看一下 pom 文件中的標籤都是什麼意思。
<build>
<finalName>maven-demo</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
這裏的<pluginManagement>
標籤裏面的內容是重寫的 maven
父類配置文件中配置,也就是說就算你不寫也有,但是我們寫了可以指定爲較新的版本。它的作用就是提供一些基本的打包以及部署命令。
相信下面這張圖大家看到很多次了:
這裏簡單說一下每個步驟的作用。
首先我們要明確每個 maven
項目都有一個 target
目錄,該目錄存放maven
運行之後生成的文件,比如該項目的目錄已經被maven
自動指定好了。
那麼這樣配置之後,maven
啓動之後就會在該文件夾下生成相應的文件。
- clean——清理:刪除
target
目錄及內容; - compiler——編譯:將
java
文件編譯成class
文件放入target
目錄; - deploy——部署:將項目部署到遠程倉庫,需要事先在
pom
文件中配置,我沒用過; - package——打包:將項目打包放入
target
目錄; - install——安裝:將項目打包後併發布到本地倉庫;
其中package
命令默認會把項目打成jar
包,但是我們可以配置爲 war
包。
比如這裏我們加入了一個war
的插件,這樣就可以直接執行該會插件,然後項目會自動被打包放入 target
目錄下。
好了,到現在爲止我們才新建了項目,還沒有解釋 Tomcat 在哪。
2、Tomcat
我們使用 maven
工具啓動 Tomcat:
雙擊 run
即可運行項目,他會自動執行我們之前介紹的 compiler
package
等命令。
運行結果如圖,簡直不要太方便,按照我們傳統的當時還有配置本地的 Tomcat 等信息:
現在只需要在 pom
文件裏面配置就好了。
那麼你是否好奇,這個 tomcat 哪來的?
我們之前說了,這個不是本地的 Tomcat,是它再帶的,是插件本身,那我們來驗證一下。
我們打開target
目錄來看一下:
我們發現它確實自動生成了一個 tomcat 文件夾,而且裏面的目錄結構即爲 tomcat
目錄結構。
現在可以確定了,這個 tomcat 其實是 maven
插件自帶的。
三、整合之後
整合之後如果我們想發佈項目到服務器該怎麼辦?
簡單隻需兩步:
1、雙擊執行 war
命令:
2、打開 target
找到war
文件,然後複製到服務器的Tomcat
的webapp
目錄下:
如果服務器在運行都不用重啓可以直接訪問。