zoukankan      html  css  js  c++  java
  • mvn常用插件目标

    由于Maven在使用时非常简单,比如下面是百度百科中对Maven常用命令的列表:

    mvn archetype:create 创建Maven项目
    mvn compile 编译源代码
    mvn deploy 发布项目
    mvn test-compile 编译测试源代码
    mvn test 运行应用程序中的单元测试
    mvn site 生成项目相关信息的网站
    mvn clean 清除项目目录中的生成结果
    mvn package 根据项目生成的jar
    mvn install 在本地Repository中安装jar
    mvn eclipse:eclipse 生成eclipse项目文件
    mvn jetty:run 启动jetty服务
    mvn tomcat:run 启动tomcat服务

    用户在mvn命令后可以指定三个生命周期中的任何阶段,则Maven会按以下逻辑执行:首先会得到该阶段所属生命周期,从该生命周期中的第一个阶段开始按顺序执行,直至该阶段本身。例如执行mvn clean命令会依次执行clean生命周期中的pre-clean阶段及clean阶段。mvn命令后可以指定多个阶段,Maven会按照输入的顺序依次执行,每次执行都会按照之前描述的逻辑执行。

    之前提到实际的工作还是由插件来完成的,这意味着插件需要和阶段绑定起来

    之前提到实际的工作还是由插件来完成的,这意味着插件需要和阶段绑定起来

    之前提到实际的工作还是由插件来完成的,这意味着插件需要和阶段绑定起来

    像mvn archetype:create这样的命令,archetype:create实际上就是一个插件目标,mvn archetype:create这条命令会直接执行指定的插件目标,并不会执行其它任何的插件目标,这和执行生命周期阶段不一样。

    除了内置绑定外,用户还可以自己选择将某个插件目标绑定到生命周期的某个阶段,从而让构建过程更为完善。

    例如,虽然maven已经将test阶段和maven-surefire-plugin:test插件目标绑定起来,但却没有将integration-test阶段和任何插件目标绑定。如果我们想在test阶段只执行单元测试,而在integration-test阶段进行集成测试的话,可以如下配置:

    复制代码
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.10</version>
        <configuration>
            <skip>true</skip>
        </configuration>
        <executions>
            <execution>
                <id>run-test</id>
                <phase>test</phase>
                <goals>
                    <goal>test</goal>
                </goals>
                <configuration>
                    <skip>false</skip>
                    <includes>
                        <include>**/unit/**/*.java</include>
                    </includes>
                </configuration>
            </execution>
            <execution>
                <id>run-integration-test</id>
                <phase>integration-test</phase>
                <goals>
                    <goal>test</goal>
                </goals>
                <configuration>
                    <skip>false</skip>
                    <includes>
                        <include>**/integration/**/*.java</include>
                    </includes>
                </configuration>
            </execution>
        </executions>
    </plugin>
    复制代码

    其中红色背景的<skip>true</skip>是为了让Maven的默认绑定(test阶段<->maven-surefire-plugin:test插件目标) 无效 (其实绑定仍然有效,只是执行时忽略执行罢了),而后面的executions块内容则增加了两个绑定,分别将maven-surefire-plugin:test插件目标绑定到test阶段和integration-test阶段,只是配置不一样了,分别执行unit包和integration包下的测试类。

    2.Maven的插件

    其实在刚才介绍生命周期中已经提到了可以在命令行的mvn命令后直接指定插件目标,之所以Maven支持这种方式是因为有些任务不适合绑定到生命周期上。在命令行调用插件的格式如下 :

    mvn groupId:artifactId:version:goal

    其中groupId、artifactId、version共同表示了插件的坐标;goal则表示插件目标的方法。

  • 相关阅读:
    Android Touch事件相关源码【Android SourceCode 2.3.6】
    使用方式比较优雅的代码集合
    Android系统中是否开启定位及定位模式的判断
    Android中软键盘展示、EditText焦点获取及windowSoftInputMode属性探究
    删除rz上传失败乱码的文件
    linux mysql 操作命令
    linux下端口被占用
    linux环境搭建记录
    ibatis 批量插入数据
    jQuery id模糊 选择器 批量处理
  • 原文地址:https://www.cnblogs.com/panxuejun/p/9149179.html
Copyright © 2011-2022 走看看