maven一篇文章就够了(下)

一,maven插件

1.1,常用的插件

1.1.1:tomcat-maven-plugin  插件使用

   <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <path>/wp</path>
                    <port>8080</port>
                    <uriEncoding>UTF-8</uriEncoding>
                    <url>http://localhost:8080/manager/html</url>
                    <server>tomcat6</server>
                </configuration>
            </plugin>

简要说明一下:

path  是访问应用的路径

port 是tomcat 的端口号

uriEncoding  URL按UTF-8进行编码,这样就解决了中文参数乱码。

Server 指定tomcat名称。

配置就这么简单,基本搞掂,下面看看如何使用

插件运行

如果Eclipse 安装了Maven插件,选 择pom.xml文件,击右键——>选择 Run As——> Maven build 。

image

如果是第一次运行,会弹出下面对话框。在Goals框加加入以下命令: tomcat:run

image

这样Tomcat 插件就可以运行。

下面介绍几个常用的Goal

命令 描述
tomcat:deploy 部署一个web war包
tomcat:reload 重新加载web war包

tomcat:start

启动tomcat

tomcat:stop

停止tomcat

tomcat:undeploy

停止一个war包
tomcat:run 启动嵌入式tomcat ,并运行当前项目

 1.1.2:maven-compiler-plugin

maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。

maven的默认编译使用的jdk版本貌似很低,使用maven-compiler-plugin插件可以指定项目源码的jdk版本,编译后的jdk版本,以及编码。

<plugin>                                                                                                                                      
    <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->                                                                           
    <groupId>org.apache.maven.plugins</groupId>                                                                                               
    <artifactId>maven-compiler-plugin</artifactId>                                                                                            
    <version>3.1</version>                                                                                                                    
    <configuration>                                                                                                                           
        <!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->                    
        <source>1.8</source> <!-- 源代码使用的JDK版本 -->                                                                                             
        <target>1.8</target> <!-- 需要生成的目标class文件的编译版本 -->                                                                                     
        <encoding>UTF-8</encoding><!-- 字符集编码 -->
        <skipTests>true</skipTests><!-- 跳过测试 -->                                                                             
        <verbose>true</verbose>
        <showWarnings>true</showWarnings>                                                                                                               
        <fork>true</fork><!-- 要使compilerVersion标签生效,还需要将fork设为true,用于明确表示编译版本配置的可用 -->                                                        
        <executable><!-- path-to-javac --></executable><!-- 使用指定的javac命令,例如:<executable>${JAVA_1_4_HOME}/bin/javac</executable> -->           
        <compilerVersion>1.3</compilerVersion><!-- 指定插件将使用的编译器的版本 -->                                                                         
        <meminitial>128m</meminitial><!-- 编译器使用的初始内存 -->                                                                                      
        <maxmem>512m</maxmem><!-- 编译器使用的最大内存 -->                                                                                              
        <compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument><!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 -->               
    </configuration>                                                                                                                          
</plugin> 

本公司的引用:

             <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>

 1.1.3:maven-war-plugin

这个插件可以实现两个功能:

maven默认是把所有的信息打包成一个war包的,如果有下面的需要则可以使用这个插件。

功能一:对不同环境的(开发,测试,生产)生成不同的war包,知道有这回事的存在就行了,用到的时候网上找案例即可。

功能二:把不用的文件排出在war包之外。比如下面的操作

 <!-- war plugin config: 对静态资源进行过滤,替换变量。 如果你不需要,请移除这一段 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                       <warName>${project.artifactId}</warName>
                        <webResources>
                            <resource>
 <!-- 元配置文件的目录,相对于pom.xml文件的路径 --> <directory>src/main/webapp</directory>
<!-- 是否过滤文件,也就是是否启动auto-config的功能 --> <filtering>true</filtering> <includes> <include>**/*.html</include> <include>**/*.js</include> <include>**/*.css</include> <include>**/*.xml</include> </includes> </resource> </webResources> </configuration> </plugin>

 1.1.4:maven-jar-plugin

maven打jar包时无法打入本地包的问题,同时也可以设置排出不需要打入jra包

<!-- 排除资源文件中的properties文件,不需要打到jar中,后面通过assembly插件打包到conf目录中 -->
<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>**/*.properties</exclude>
            <exclude>**/*.xml</exclude>
            <exclude>**/*.conf</exclude>
        </excludes>
    </configuration>
</plugin>

 打jar包时无法打入本地包的问题

<plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <inherited>true</inherited>
                    <configuration>
                        <archive>
                            <manifest>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>

其实maven提供了好多插件可以根据我们工作当中碰到的问题自行选择对应的插件,

这里又两个网址:就是我们常用的插件的下载和说明地址:

i.    https://maven.apache.org/plugins/
ii.    http://www.mojohaus.org/plugins.html

1.2,自定义插件

有时候我们水平到一定程度的话可以自己定义插件,同时通过自定义插件我们也可以了解到插件的运行的原理。

猜你喜欢

转载自www.cnblogs.com/qingruihappy/p/10398721.html