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包,
在这里插入图片描述 这样就行了。