在本篇文章开始之前
一、首先要明白9种生命周期的定义
注:这是建立在使用Maven来作为控制版本工具的时候的方法
9种生命周期:1.clean,清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
2.validate,验证,验证工程是否正确,所需的信息是否完整。3.compile,编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。4.test,单元测试,测试。5.package,打包,将工程文件打包为指定的格式,例如JAR,WAR等。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了6.verify,核实,检查package是否有效、符合标准。7.install,安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)8.build:功能类似compile,只是只对整个项目进行编译。9.site,站点,生成项目的站点文档10.deploy,复制到远程仓库
二、理解项目运行的时选择的方式
#选择war
还是war exploded
这里首先要明白他们两个的区别:
1.war模式这种可以称之为是发布模式,这是先打成war包,再发布;
2. war exploded模式是直接把文件夹、jsp页面 、classes等等全部移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,这种部署方式方便修改项目。一般也是使用该方法。
例如这里选用的
就是采用的war exploded部署方式
#除此之外也展示一下使用war包发布的情况
注:首先你得有war包
之后同理
三、之后就是最为重要的关于生命周期,打包和架构
使用clean命令,这里可以发现target文件夹已近没了
之后如果需要更改连接池,则需重新package
注:这里是建立在使用war包进行访问的基础上,必须打包!!!
可以查看访问方式如下
war包同理
注:target是idea默认的编译路径,可以用来存放项目的:文件和目录、jar包、war包、class文件等。
写在最后
对于一个项目的开发,其实也就是一个编译的过程,生成的target文件夹其实也就是编译完后的整个项目,当然在使用war exploded
方式的话就无需再手动打包了。这也是
热部署
的好处了。当然生命周期的理解便尤为重要了!!!