Maven Plugin的@Mojo和@Execute的具体使用

本文以spring-boot-maven-plugin 2.5.4为例

@Mojo defaultPhase

以spring-boot-maven-plugin:start为例, 他的@Mojo defaultPhase是PRE_INTEGRATION_TEST,该目标默认绑定到此阶段.

@Mojo(name = "start", requiresProject = true, defaultPhase = LifecyclePhase.PRE_INTEGRATION_TEST,
      requiresDependencyResolution = ResolutionScope.TEST)
public class StartMojo extends AbstractRunMojo {
}

在pom中,我们只需要指定goal,就会在PRE_INTEGRATION_TEST阶段执行

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
    <execution>
        <id>start</id>
        <goals>
            <goal>start</goal>
        </goals>
        <!--如果额外指定phase=verify,会忽略defaultPhase,而在verify阶段执行-->
        <phase>verify</phase>
    </execution>
</executions>

@Execute phase

以spring-boot-maven-plugin:run为例,他的@Execute phase=TEST_COMPILE,在运行该目标前,让maven先运行一个并行的生命周期,到指定的阶段TEST_COMPLIE为止。到phase执行完,才执行插件目标
所以执行run,总是会运行到TEST_COMPLIE阶段

@Mojo(name = "run", requiresProject = true, defaultPhase = LifecyclePhase.VALIDATE,
      requiresDependencyResolution = ResolutionScope.TEST)
@Execute(phase = LifecyclePhase.TEST_COMPILE)
public class RunMojo extends AbstractRunMojo {

参考资料

maven官方
博客

到此这篇关于Maven Plugin的@Mojo和@Execute的具体使用的文章就介绍到这了,更多相关Maven Plugin @Mojo和@Execute内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用maven-archetype-plugin现有项目生成脚手架的方法

    前提使用idea 1.idea安装maven-archetype-plugin插件 https://plugins.jetbrains.com/plugin/7965-maven-archetype-catalogs/versions 下载idea对应的版本,离线安装 2.在一个已有项目的根目录 mvn archetype:create-from-project,会在target目录下生成一个archetype目录,这其实是一个脚手架的maven项目 3.可调整此目录下的 target/gene

  • spring-boot-maven-plugin 插件的作用详解

    添加了spring-boot-maven-plugin插件后,当运行maven打包的命令,项目会被打包成一个可以直接运行的jar包,使用"java -jar"可以直接运行. 当项目中有两个启动类时,需要制定要执行的类,如果不指定,启动会报错. 指定启动类有两种情况需要区分 一:pom文件继承自spring-boot-starter-parent <properties> <start-class>com.xx.xx</start-class> <

  • Maven的几个常用plugin

    maven-compiler-plugin 编译Java源码,一般只需设置编译的jdk版本 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.0</version> <configuration> <source>1.8<

  • Idea配置maven-tomcat-plugin插件实现项目部署

    参考文章: maven tomcat plugin实现热部署:https://www.jb51.net/article/143054.htm 实现maven项目部署到服务器分为如下几个步骤: tomcat 的tomcat-users.xml中添加用户: maven 的settings.xml中添加server: pom.xml中添加tomcat7-maven-plugin插件配置: 在tomcat运行的情况下,运行 tomcat7:deploy 命令. 1.添加用户 在 标签内: <role r

  • maven tomcat plugin实现热部署

    1.Tomcat7的用户及权限配置 要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. 在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在<tomcat-users>节点下面增加如下配置: <role rolename="manager-gui" /> <role rolename="manager-script&q

  • maven <repositories>标签和<pluginRepositories>标签的使用

    在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等.每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复.重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难.此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很多头疼的问

  • Springboot maven plugin插件原理及作用

    要记住:spring-boot-maven-plugin插件在打Jar包时会引入依赖包 可以打成直接运行的Jar包 maven项目的pom.xml中,添加了org.springframework.boot:spring-boot-maven-plugin 插件,当运行"mvn package"进行打包时,会打包成一个可以直接运行的 JAR 文件,使用"Java -jar"命令就可以直接运行. 可以引入依赖包 一般的maven项目的打包命令,不会把依赖的jar包也打包

  • spring-boot-maven-plugin:<unknown>的完美解决方法

    1.在对应的pom.xml文件里添加"插件的某个版本"<version>xxx</version>. <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.6.RELEASE</version> 2."插件的某个版本&quo

  • Maven Plugin的@Mojo和@Execute的具体使用

    本文以spring-boot-maven-plugin 2.5.4为例 @Mojo defaultPhase 以spring-boot-maven-plugin:start为例, 他的@Mojo defaultPhase是PRE_INTEGRATION_TEST,该目标默认绑定到此阶段. @Mojo(name = "start", requiresProject = true, defaultPhase = LifecyclePhase.PRE_INTEGRATION_TEST, re

  • Spring Boot Maven Plugin打包异常解决方案

    [背景]spring-boot项目,打包成可执行jar,项目内有两个带有main方法的类并且都使用了@SpringBootApplication注解(或者另一种情形:你有两个main方法并且所在类都没有使用@SpringBootApplication注解),pom.xml如下 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin<

  • 解决IDEA中下载free maven plugin插件无效的问题

    在IDEA中导入插件时成功 但是在实体类的方法接口中没有绿色的箭头(我现在是有的) 解决方案一:鼠标右键,选择最后一个Configure Gutter Lcons 查看里面的东西是否已经勾选上,如果已经勾选上还是没有效果请看方案二 解决方案二:请不要心慈手软彻底的删除idea,在安装idea软件,在进行下载free MyBatis plugin插件,应该八九不离十应该有效果了 总结 到此这篇关于解决IDEA中下载free maven plugin插件无效的问题的文章就介绍到这了,更多相关IDEA

  • docker maven plugin快速部署微服务的详细流程

    目录 一.前置条件 二.部署方法 1.开放远程部署端口 3.修改application文件 4.打包上传并创建镜像 5.启动容器 三.总结 一.前置条件 linux下装好docker并启动 1.使用国内 daocloud 一键安装命令 curl -sSL https://get.daocloud.io/docker | sh 2.启动docker systemctl start docker.service 二.部署方法 1.开放远程部署端口 <1>修改 docker 的配置文件 /lib/s

  • maven多个plugin相同phase的执行顺序

    Maven是项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件. Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑.当你使用Maven的时候,你用一个明确定义的项目对象模

  • 浅谈Maven的build生命周期和常用plugin

    简介 Maven为我们封装了很多构建中非常有用的操作,我们只需要执行简单的几个mvn命令即可. 今天我们要讨论一下mvn命令之下的生命周期的构建. lifecycle和Phases 所谓lifecycle,可以理解为可以执行一组命令的集合,用来执行具体的某些操作. Maven默认有三种lifecycle:default,clean和site.default主要用来处理项目的开发,clean主要用来负责项目的清理,site主要用来生成项目的文档. lifecycle是由一个或者多个phase组成的

  • Java中的maven和gradle的比较与使用详解

    目录 1 构建工具的简单介绍 2 maven.gradle的简单使用方法 2.1 创建maven项目 2.2 maven的使用 2.3 gradle的使用 3 总结 1 构建工具的简单介绍 在代码世界中有三大构建工具,ant.Maven和Gradle.现在的状况是maven和gradle并存,gradle使用的越来越广泛.Maven使用基于XML的配置,Gradle采用了领域特定语言Groovy的配置.在Maven中要引入一个依赖,如下面的例子: <properties> <kaptch

  • 使用maven自定义插件开发

    目录 Maven 插件的命名规范 什么是 Mojo? 创建 Mojo 工程 Maven 插件的命名规范 什么是 Mojo? 创建 Mojo 工程 简单 Mojo 的创建 运行自定义 Plugin 缩短执行命令 Maven 作为一个优秀的项目管理工具,其插件机制为其功能扩展提供了非常大的便捷性. 虽然说大多数情况下,我们可能不太会自己去编写 Maven 插件,但不排除在某些特殊的情况下,我们需要去完成一个自己的插件,来协助我们处理某些比较通用的事情. 正好,最近有一些需求可能需要对 Drools

  • maven自动部署到远程tomcat服务器的方法

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配置tomcat的manager 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了) <role rolename="manager-gui"/> <role rolename="m

随机推荐