Maven生命周期和插件

本文详细介绍了Maven的三种生命周期:clean、default和site,并解释了它们包含的具体阶段。此外,还探讨了插件、目标与生命周期的关系,以及如何进行自定义绑定。

一、maven存在三套生命周期,分别为clean,default和site。其中clean包括pre-clean、clean和post-clean三个。

default主要包括:proces-sources、compile、process-test-sources、test-compile、test、package、install以及deploy。site包括pre-site、site、post-site、以及site-deploy。

二 插件和目标以及和生命周期的关系:插件集成了多种功能,每一种功能算一个目标。生命周期的某个阶段的具体任务由插件的某一个目标完成(也即某一项功能完成指定阶段的任务)。例如compile阶段由maven-compile-plugin这一插件的compile目标完成。

三、内置绑定:

  1.  clean:maven-clean-plugin:clean。
  2. process-resources:maven-resources-plugin:resources
  3. compile:maven-compile-plugin:compile
  4. process-resources:maven-resources-plugin:testResources
  5. test-compile:maven-compile-plugin:testCompile
  6. test:maven-surefire-plugin:test
  7. package:maven-jar-plugin:jar
  8. install:maven-install-plugin:install
  9. deploy:maven-deploy-plugin:deploy

四、自定义绑定:

<build>
    <plugins>
        <plugin>
           <!-- maven官方插件groupId -->
            <groupId>org.apache.maven.plugins</groupId>
            <!--  源码相关插件-->
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1.1</version>
            <executions>
                <execution>
                   <!-- execution的ID -->
                    <id>attach-sources</id>
                    <!-- 需要执行的maven生命周期阶段 ,如果不填写的,很多plugin的goal已经定义了默认绑定阶段,例如此处如果不填写,默认是绑定在package-->
                    <phase>verify</phase>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

   通过mvn help:describe -Dplugin=[groupId:artifactId:version|Goal prefix] [-Dgoal=goal] [-Ddetail] 查看插件的相应信息。同一个插件goal可以绑定到不同的生命周期阶段。同一个生命周期阶段也可以绑定多个插件goal。其执行顺序前者按照生命周期顺序。后者按照声明的顺序

五、插件解析机制:

  1.     插件仓库:可通过pluginRepositories标签在pom或者settings中设置插件仓库。
  2. maven 前缀:maven dependency:list 其中dependency就是maven-dependency-plugin的前缀,我们就是使用dependecy来代替org.apache.maven.plugins:maven-dependency-plugin:version的使用,两者之间的关系保存在元数据当中。maven默认到。list是dependency的goal。
  3. 插件的默认groupId:如果插件是maven的官方插件。则groupId为org.apache.maven.plugins。且设置plugin标签时可忽略groupId标签。

          

转载于:https://my.oschina.net/dtpanda/blog/125347

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值