maven、maven項目部署

maven、maven項目部署

***理解maven項目以及其部署,這篇內容比較對,也比較雜,但是都是個人理解之後,總結出來的,希望對向我們新手們有所幫助。

1.maven的理解
2.maven項目部署,內置tomcat插件部署(war包)

1.maven的理解?

  1. 對於maven很多網站上都有詮釋,我就不粘在這裏了,我們只要理解它是用於管理項目的就行。我們需要知道的就是,
  2. 第一點: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包

  • idea工具打包,先說war包:

    在這裏插入圖片描述
    ompile 編譯,package打包。
    導出的包文件都默認在target下,上面說過了。

  • 不需要開發工具打包

  • 在這裏插入圖片描述

  • 找到項目路徑,在該路徑下cmd,輸入mvn package,打包成功。包也是在target下。

第二步 項目部署。
這個就不多說了,將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包,
在這裏插入圖片描述 這樣就行了。