首页 > 其他分享 >maven的插件

maven的插件

时间:2022-11-30 14:32:15浏览次数:43  
标签:插件 plugin caojiulu maven clean mvn


插件plugin是绑定到生命周期,承担实际功能的组件。mvn运行时,自动关联插件来运行

下图是maven默认的各阶段对应的插件列表:

生命周期

生命周期阶段

插件目标

执行任务

clean

pre-clean

 

 

 

clean

maven-clean-plugin:clean

删除项目的输出目录。

 

post-clean

 

 

site

pre-site

 

 

 

site

maven-site-plugin:site

 

 

post-site

 

 

 

site-deploy

maven-site-plugin:deploy

 

default

process-resources

maven-resources-plugin:resources

复制主资源文件至主输出目录

 

compile

maven-compiler-plugin:compile

编译主代码至主输出目录

 

process-test-resources

maven-resources-plugin:testResources

复制测试资源文件至测试输出目

 

test-compile

maven-compiler-plugin:testCompile

编译测试代码至测试输出目录

 

test

maven-surefire-plugin:test

执行测试用例

 

package

maven-jar-plugin:jar(ejb:ejb jar:jar rar:rar war:war)

创建项目jar包

 

install

maven-install-plugin:install

将项目输出构件安装到本地仓库

 

deploy

maven-deploy-plugin:deploy

将项目输出构件部署到远程仓库

常用Maven命令:

mvn clean  清理

mvn compile 编译主程序

mvn package 打包

mvn install 安装jar到本地库

 

使用maven命令生成项目(idea和eclipse生成项目最终也是依赖maven插件生成的)

mvn archetype:generate -DgroupId=enjoy -DartifactId=simple -DarchetypeArtifactId=maven-archetype-quickstart  -Dversion=1.0

mvn archetype:generate -DgroupId=enjoy -DartifactId=simple-web -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0   

maven插件开发

可以自定义插件,来扩展maven的功能。插件的开发步骤如下:

1、引入maven api的依赖

<packaging>maven-plugin</packaging>

<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>

</dependencies>

2、编写简单Mojo类---继承AbstractMojo

@Mojo(name="log")
public class MyMavenPlugin extends AbstractMojo {
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("deploy to your local re-------------------");
}
}

3、执行插件

先mvn install

mvn groupId :artifactId :version :goal

然后再mvn com.caojiulu:caojiulu-plugin:1.0:log

ean-plugin:2.5:clean (default-clean) @ caojiulu-plugin ---
[INFO] Deleting D:\bim_develop\workspaces\maventest\caojiulu-plugin\target
[INFO]
[INFO] --- caojiulu-plugin:1.0:log (default) @ caojiulu-plugin ---
[INFO] deploy to your local re-------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -------------------------------------------------------------------

4、关联插件到生命周期来执行

<build>
<plugins>
<plugin>
<groupId>com.caojiulu</groupId>
<artifactId>caojiulu-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<!-- 配置compile执行 -->
<phase>clean</phase>
<goals>
<!-- 配置执行目标 -->
<goal>log</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

构建项目对应的生命周期

maven的插件_生命周期

 

 

标签:插件,plugin,caojiulu,maven,clean,mvn
From: https://blog.51cto.com/u_14906615/5899442

相关文章

  • 微慕积分商城插件
    微信小程序专业版在第一个正式版发布的时候,就推出了积分系统。用户登录小程序、签到、发表文章、评论文章、发表话题、回复话题、点赞、赞赏、付费阅读后都可以获得相应的......
  • maven的作用及配置教程
    Maven可以使我们在构建项目时需要用到很多第三方类jar包,如下一些常用jar包  而maven的出现可以让我们避免手动导入jar包出现的某些问题,它可以自动下载那须所需要的ja......
  • vue大文件上传插件
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持......
  • NOTE_pinia持久化插件的使用
    E:\song\vue_vue_learn\vite-project\index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><linkrel="icon"type="image/svg+xml"......
  • idea创建SpringBoot项目时,Type 选择 maven project 和maven pom 有什么区别?
    https://blog.csdn.net/bin_0203/article/details/121841615 在操作到Type选项时有四种项目类型可供选择:MavenProject(GenerateaMavenbasedprojectarchive)M......
  • vue 上传插件
    ​ 关键部分前端用file.slice()分块前端用FileReader获取每一分块的md5值后端用MultipartFile接受分块文件后端用FileOutputStream拼装分块文件话不多说,直接上代码,......
  • Maven报错:The packaging for this project did not assign a file to the build artif
    一、问题发生我想使用IDEA的Maven管理工具将项目安装到本地仓库,于是选择了Plugins下的install:install去执行,如下图所示:  结果出现了如下报错信信息:[ERROR]Failed......
  • IDEA 插件
    IDEA插件1、RestfulToolkit对象转换为KV键值对对象转换为JSON(单行展示)对象转换为JSON快速跳转至CONTROLLER(MAC:command+/)其他功能待你去摸索//KVmerc......
  • 【Unity插件】NGUI核心组件之UIAtlas
    NGUI:UIAtlasUIAtlas是一个容器,他包含了许多sprite的坐标信息。如果你对这个概念不是很熟悉,你可以这样理解:与使用很多小的贴图来渲染UI相比,使用一张包含了所有小贴图的大......
  • 编译Keepass 插件IIME 记录
    Keepass自动输入时,输入法总是冒出来。安装插件实现输入前自动切换为英文,自动输入完成后恢复为中文下载插件源码gitclonehttps://github.com/iuuniang/IIME.git编译......