maven插件包的详解

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>


这些是实际开发中,醉常用的一些mavne插件的坐标,下面一一做讲解

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包所在的本地仓库的坐标文件夹下)

还有跟多的插件,这里就不做过多的解释了,


你可能感兴趣的:(maven插件包的详解)