Maven整理

2018-12-28  本文已影响0人  柳叁叁

maven是一个项目管理工具

每一个工程都通过POM文件来定义maven的配置,每一个插件也有对应的配置文件。

maven生命周期由各个阶段组成,可以理解成由各种plugin按照一定的顺序执行来完成java项目整个流程,生命周期主要包括clean、resources、compile、testResources、testCompile、test、package、install、deploy。生命周期的各个阶段不是独立的,可以单独执行,也可以一起执行。

clean插件

clean阶段是一个独立的阶段,功能是清除工程中的target目录。

resource插件

resource的功能是把项目需要的配置文件拷贝到指定的目录当中去,默认是拷贝src/main/resources目录下的文件到classes目录下,也可以自己配置输入和输出目录,此插件一般不单独执行,compile插件执行时会先调用resource插件。

compiler插件

compiler插件执行时先调用resources插件,然后将java源码编译成字节码生成class文件,并把编译好的文件输出到target/classes目录下。

单元测试插件

单元测试需要用到resource和compiler插件将test文件编译并输出到target/test-classes里,surefire插件是执行单元测试类的,如果测试不通过,build就会失败,可与i通过-DskipTests来跳过测试过程。mvn test可以单独执行,其实包括了resources、compiler、testResources、testCompile、test几个阶段。

打包插件

此插件是把class文件、配置文件打成一个jar包(或war包等)。依赖包是不在jar里的,需要建立lib目录,且jar和lib在同级目录。常用的打包插件有jar、assembly和shade。
执行package命令可以完成项目编译、单元测试、打包功能。

×JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。
JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。下面我们将第2章的Web应用程序打包成WAR文件,然后发布
要注意的是,虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

install和deploy插件

install是把构建好的artifact部署到本地仓库,deploy是把构建好的artifact部署到远程仓库。

一些额外总结:

1、可将maven的settings文件中的快照更新策略(update policy)修改为never,避免不必要的麻烦。
2、当遇到无法找到包、依赖出问题等等问题时,应有解决思路,可参考https://825635381.iteye.com/blog/2374699

其他文献:
https://blog.csdn.net/qq_16605855/article/details/79726278

上一篇下一篇

猜你喜欢

热点阅读