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包所在的本地仓库的坐标文件夹下)
还有跟多的插件,这里就不做过多的解释了,