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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2021-09-12

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

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-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

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<

maven &lt;repositories&gt;标签和&lt;pluginRepositories&gt;标签的使用

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

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

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包也打包

Maven生命周期和及插件原理用法详解

maven周期 maven的生命周期不止package,compile,clean.其实这是主要部分. 以下截图其实展示的是maven的所有周期. maven的生命周期,主要分为3套(其实每个生命周期下面都分为一些阶段,如上截图所示): 1.clean周期:负责清理项目(清理上一次编译的文件). 2.default周期: 主体周期,负责完成项目构建主体过程. 3.site周期:建立站点(生成站点文档,发送站点到服务器). 周期之间是独立的,周期内部的各个阶段是相互依赖的. 例如我执行instal

springboot+maven快速构建项目的示例代码

最近公司运用springboot构建项目,确实比ssh搭建要快很多. 1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了. 2.创建一个maven项目,pom.xml文件里面写这些: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche

使用Docker部署 spring-boot maven应用的方法

本文介绍了使用Docker部署 spring-boot maven应用,分享给大家,具体如下: 部署过程分为以下几个步骤: 创建一个简单的spring-boot应用 打包运行应用 容器化应用 在pom文件中添加docker支持 创建docker镜像 运行docker容器 查看正在运行的容器 启动/关闭/重启/删除docker容器 1. 创建一个简单的spring-boot应用 在IntelliJ IDEA中File->New->Project: 然后点Next->Finish. 2. 打

Maven 常用插件的详细整理

Maven 常用插件的详细整理 1.源码分析 <artifactId>maven-pmd-plugin</artifactId> 2.代码格式检查 <artifactId>maven-checkstyle-plugin</artifactId> 3.代码相似度检查 <groupId>org.codehaus.mojo</groupId> <artifactId>simian-maven-plugin</artifac

使用Maven Archetype插件构建Maven工程原型模板的实例

创建原型模板 1.在空目录运行archetype:generate上面的命令,待下载完必要的jar包后,首先需要输入内置的原型编号: Choose archetype: 1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.) 2: internal -> org.apache.maven.archetypes:ma

详解MyBatis自定义Plugin插件

作用 官方说明: MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用. 什么意思呢?就是你可以对执行某些方法之前进行拦截,做自己的一些操作,如: 1.记录所有执行的SQL(通过对 MyBatis org.apache.ibatis.executor.statement.StatementHandler 中的prepare 方法进行拦截) 2.修改SQL(org.apache.ibatis.executor.Executor中query方法进行拦截)等. 但拦截的方法调用有限制,My

SpringBoot+Maven 多模块项目的构建、运行、打包实战

本篇文章主要介绍了SpringBoot+Maven 多模块项目的构建.运行.打包,分享给大家,具体如下: 项目使用的工具: IntelliJ IDEA JDK 1.8 apache-maven-3.3.9 项目的目录: 主项目 springboot-multi 子模块 entity.dao.service.web 一.使用IDEA创建一个SpringBoot项目 : File -> new -> Project 项目名称为springboot-multi 二.删除项目中的src目录,把pom.

springboot maven 项目打包jar 最后名称自定义的教程

maven 文件打包,输入 :package -Dmaven.test.skip=true 进行打包, 一般生成的jar 文件 名称是项目名+版本号这样的 如何在pom.xml 中加入finalname 属性,就可以获得稳定的jar 名称 <build> <finalName>pay</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId

详解JSP 中Spring工作原理及其作用

详解JSP 中Spring工作原理及其作用 1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller. 3.DispatcherServlet请请求提交到目标Controller 4.Controller进行业务逻辑处理后,会返回一个ModelAndView 5.Dispathcher查询一个或多个