maven、maven項目部署
時間 2021-08-15
標籤
maven
maven部署
內置tomcat部署
maven、maven項目部署
***理解maven項目以及其部署,這篇內容比較對,也比較雜,但是都是個人理解之後,總結出來的,希望對向我們新手們有所幫助。
1.maven的理解
2.maven項目部署,內置tomcat插件部署(war包)
1.maven的理解?
- 對於maven很多網站上都有詮釋,我就不粘在這裏了,我們只要理解它是用於管理項目的就行。我們需要知道的就是,
- 第一點:maven項目會有自己的一套架構規範,也就是確定的項目目錄。
差不多就是這樣的項目架構。創建這樣的項目目錄架構方法有很多,比如idea等開發工具上創建maven項目,命令創建maven項目,甚至可以手動敲出項目目錄。重點就是pom.xml文件啦。
第二點:maven提供了很多命令用於系統發開,例如mvn compile,mvn clean,mvn package等。有了這些命令,調試,部署起來就很方便啦,比如說你有個maven項目,完全不在需要開發工具,直接進入項目目錄下,一個cmd,mvn package 就能輕鬆的打包了(前提是要安裝配置好maven)。在架構中的target中就能找到打包的文件。jar或者war,然後就可以部署啦(後面說)。
第三點:maven的依賴管理的強大,我就不多說了,免去了手動引入的痛苦。。。
以上是初學者需要對maven的一個簡單的理解,什麼是maven,哦~原來他就是有着特有的項目架構,並支持命令簡化打包。。。
2.maven項目部署,內置tomcat插件部署(war包)?
- 我們都知道普通的web項目部署前呢都是需要編譯和打包,然後將編譯好的編譯文件或者打好的war包放到tomcat的webapp下面,然後啓動tomcat就行了。
maven項目其實也是一樣的,普通的maven項目也是需要打成war包進行項目部署的。
現在有個問題maven中有tomcat插件,使用插件之後,我們不需要本地tomcat了,直接就可以啓動插件tomcat運行項目。
那麼現在問題來了,我maven項目含有內置tomcat,那我導出的war是不是不需要tomcat就能部署運行了呢
- 不是這樣的,導出的war還是需要tomcat才能部署運行的。
那我內置的tomcat插件有何用呢?
- 1、可以實現web應用程序的單步調試,只要在web應用的程序中設置斷點, 然後在瀏覽器訪問時即可實現單步調試,可以調試command、service、domain、dao,從此我們就可以不用打太多的Log了。不過美中不足的是無法實現jsp中代碼的單步調試,但是可以調試jsp編譯成的java程序。
- 2、可以實現熱部署,java程序修改之後,不用重啓應用也不用部署即可看 到修改結果,也就是瀏覽器那裏不用重新登錄系統,大大提高調試的效率。
- 3、可以多線程同時調試
簡單一句話方便開發。
下面簡單說下maven項目的打包部署吧。
第一步 項目打包,如果是web項目就是war包。如果是java應用項目就是jar包
第二步 項目部署。
這個就不多說了,將war包放入tomcat的webapp下,啓動tomcat就行了,會自動解壓你的war。
還有就是java應用程序打包爲jar包(springboot項目除外,它也是web項目,原理其他篇章介紹)。
我們要知道要打出jar包,且要能java -jar ****運行,前提是要求項目中必須有個主類(main),不僅要這樣,我們還需要插件設置默認啓動類,這樣你java -jar ***的時候,纔會啓動你的啓動類。
比如我這項目中有個主類。
然後需要插件設置
<pluginManagement>
<plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
</plugin>
其中HelloWorld 就是我的啓動類。
完成這些之後,記得改一個東西。
改爲jar,然後就同上述一樣打包,最後在target中的就是jar包,
啓動jar包,
這樣就行了。