Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。
Mavne出了通过坐标引入jar外,其实还有高级的用法,那要了解高级的用法肯定需要对一些mavne插件用法必须非常了解这里就介绍一些常用的mavne插件的用法和配置
<build> <plugins> <!-- 资源文件拷贝插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- java编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <!-- 激活spring profile --> <webResources> <resource> <filtering>true</filtering> <directory>src/main/webapp</directory> <includes> <include>**/web.xml</include> </includes> </resource> </webResources> <warSourceDirectory>src/main/webapp</warSourceDirectory> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> </plugin> <!-- 文档生产插件包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.7</version> <configuration> <reportOutputDirectory>src/main/webapp/WEB-INF</reportOutputDirectory> <destDir>javadoc</destDir> <javadocVersion>1.5</javadocVersion> <!--输出字段级别 --> <show>private</show> <!--建立一个集中的doc --> <aggregate>true</aggregate> <charset>UTF-8</charset> <encoding>UTF-8</encoding> </configuration> </plugin> <!-- 私服插件包 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> </plugins> </pluginManagement> </build>
maven-resources-plugin:这个是jar包源码插件包,默认gbk编码。我这里修改了编码格式改成了utf-8,默认是读取当前工程下的所以的源码和配置。可以通过配置读取其他项目下的源码和配置,这里没有做相关配置。一般情况下不会去读取其他项目的配置,所以只需要加上这个插件,在mavne 执行install 的时候会把当前工程(jar工程)的源码一起打包到本地仓库。
maven-compiler-plugin:这个是jdK环境插件包,mavn默认的编译环境是1.5但是现在实际开发中很少会有人去用jdk1.5,最主流的环境是jdk1.7,也有公司开始使用jdk1.8,所以需要改变编译环境就需要通过这个插件包去需改了,可以手动设置编译的的编码(默认是gbk)和编译的环境,
<source>1.7</source> <!-- 源代码使用的开发版本 -->
<target>1.7</target> <!-- 需要生成的目标class文件的编译版本 -->
我这里就以1.7未例,具体配置根据公司的jdk版本去做对应的修改
tomcat7-maven-plugin:这个是web服务器tomcat的插件包,这样就可以不需要吧自己的项目添加到外边的tomcat服务器上去运行,而是直接通过插件包运行tomcat启动命令就能把我们的web项目启动起来,其实原理和jetty插件一样,通过引入服务器相关的jar包(tomcat引入tomcat相关的jar包,jetty引入jetty相关的jar包),jetty其实可以不需要引入插件,只需要引入jetty相关的jar包,然后通过maven运行jetty就能把你的项目放到jetty服务器中去运行了,其实插件的原理一样,通过引入服务器相关的jar包,然后运行插件命令,去运行自己的项目。
maven-war-plugin:这个插件的作用是对mavne项目进行动态打包,这个插件的配置有点复杂。在进行项目发布的时候,可能会碰到这样的情况, 希望在保持项目源代码不变的前提下,希望能够针对不同的运行环境获得相应的运行包.(比如war包)
里面有2个很重要的标签
<warSourceExcludes> 打包之前过滤掉不想要被打进 .war包的jar
<configuration> 配置打包的相关文件的配置
<resource>
<filtering>true</filtering><!-- 是否过滤文件,也就是是否启动auto-config的功能 -->
<directory>src/main/webapp</directory> <!-- 元配置文件的目录,相对于pom.xml文件的路径 -->
<targetPath>WEB-INF</targetPath> <!-- 目标路径 -->
<includes> <include>**/web.xml</include> </includes> <!-- 引入程序加载文件文件-->
</resource>
通过这个插件可以配合maven-resources-plugin插件可以吧war项目的源码随着install的时候打入到该war在本地仓库的坐标的文件夹下会以jar包的方式打入本地仓库
具体可以查看该链接 点击打开链接
maven-javadoc-plugin:文档插件包,对源码生产帮助文档,具体我没有用过,就不做过多的解释了
maven-install-plugin:即默认的maven install执行的命令,用来自动地将本项目的主artifact以及它的附件如source,doc安装到本地的仓库中,这个插件就行修改mavne默认的nstall命令,会把默认install 的时候和该工程相关的一些附件打入到本地仓库中(位置就是在该jar包所在的本地仓库的坐标文件夹下)
还有跟多的插件,这里就不做过多的解释了,