plugins标签 为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件 引入tomcat插件,使用命令tomcat7:run即可编译运行,不需要外部的tomcat插件 <plugins> <plugin> <groupId >org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> </groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2 -- 引入tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId>
这些 phase 就相当于 Maven 提供的统一的接口,然后这些 phase 的实现由 Maven 的插件来完成。 但是 clean 的具体操作是由 maven-clean-plugin 来实现的。
所以说 Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。 Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。 Maven 插件通常被用来:
创建 jar 文件
创建 war 文件
编译代码文件
代码单元测试
创建工程文档
创建工程报告
插件通常提供了一个目标的集合,并且可以使用下面的语法执行:
mvn code>mvn compiler:compile
插件类型
Maven 提供了下面两种类型的插件:
类型 描述
Build plugins 在构建时执行,并在 pom.xml 的 元素中配置
一直没注意看maven执行过程中的打印日志,今天突然发现一段话,说编译以及resource未指定编码,默认gbk。 于是,百度了设置编码的方式: <plugin> <groupId>org.apache.maven.plugins</groupId> < artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins </groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1
【Maven】maven 插件开发实战 ? 前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。 这些命令,其实底层都是一个一个的 maven 插件。 如何开发自己的插件 1. maven 插件的命名规范 在写一个项目之前,第一件事就是确定一个名称。maven 插件也不例外。 但是规范很简单,一句话就可以概括,**官方插件命名的格式为 maven-xxx-plugin,非官方的插件命名为 xxx-maven-plugin 。 ,这个是开发 maven 插件必须依赖的核心包。 我们在写插件时,当然不会这样写,但是通过这个 demo,你就掌握了 maven 插件的大部分知识,可以自己做一些很有趣的插件。 4.
Maven现在是Java开发依赖包管理的标准了,大部分人可能都只会熟悉 编写dependency标签,而真正编译,打包都是通过插件来完成的,这篇文章整理下工作中用的比较多的Maven插件,更详细的Maven 插件请参考官网:https://maven.apache.org/plugins/index.html。 一、标准插件 1、clean 清除编译好的包,一般和其它插件一起用,如mvn clean install 2、compiler 编译源码; 可通过compilerVersion属性设置JDK版本 < 具体使用如下: 1、引入依赖: <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId > <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId>
自带核心插件 https://maven.apache.org/plugins/ 二. 第三方插件 1.maven-assembly-plugin http://maven.apache.org/plugins/maven-assembly-plugin/ (1)打包独立运行的jar文件 (2)打包压缩文件 maven-assembly-plugin插件除了可以打包项目为可独立运行的jar文件,还可以将项目打包为压缩文件。 <! https://maven.apache.org/plugins/maven-dependency-plugin/ 通过该插件可以对被依赖组件进行复制,解压等一系列操作。 / Maven常用插件配置和使用 http://www.jianshu.com/p/861c0d3697d0 maven-assembly-plugin打包spring项目运行报错解决
maven FailSafe插件是用来执行集成测试的,Surefire插件则是用来执行单元测试的。 说到这里,笔者觉得有必要提一下maven的生命周期与集成测试相关的四个阶段: 1.pre-integration-test:该阶段用来准备集成测试环境,类似于junit单元测试中的setUp 2.integration-test 见名知意,该阶段执行集成测试 3.post-integration-test:用来销毁集成测试的环境,类似于junit单元测试中的tearDown 4.校验:该阶段用于分析集成测试的结果 FailSafe插件工作在上面的 integration-test以及verify阶段,与surefire插件不同的是该插件不会因为集成测试中失败而终止整个过程,也就是说post-integration-test可以确定执行。 FailSafe插件有两个goal:integration-test 和verify。
Maven 使用 maven-release-plugin 插件来完成以下任务。 mvn release:clean 清理工作空间,保证最新的发布进程成功进行。 提交修改后的 POM 文件 为代码在 SVN 上做标记 增加版本号和附加快照以备将来发布 提交修改后的 POM 文件到 SVN mvn release:perform 将代码切换到之前做标记的地方,运行 Maven C:\MVN\bus-core-api>mvn release:prepare Maven 开始构建整个工程。构建成功后即可运行如下 mvn 命令。
熟悉一个东西最全的方式莫过于官网文档(前提是官网有相关介绍并且版面布局OK),相信不少小伙伴也遇到过跟我类似的问题,想使用一个插件但是去官网一看要不没有说明要不板书不堪入目,幸运的是maven官网文档还挺 OK,maven是现在使用比较广的一个项目管理工具,还有两个使用比较广的就是ant以及gradle。 User property is: maven.compiler.compilerVersion. debug boolean 2.0 Set to true to include debugging This overrules the toolchain selected by the maven-toolchain-plugin. note: requires at least Maven 3.3.1 User property is: maven.compiler.verbose.
当前 Maven Compiler Plugin 这个插件的版本为 3.10.1 你可以使用最新的版本。 我们今天主要说一下这个插件中 --release 参数 这个插件的配置方法如下: <? > <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId configuration> <release>11</release> </configuration> </plugin> 从 JDK 9+ 版本以后,添加了一个 --release 参数来告诉 Maven https://www.ossez.com/t/maven-maven-compiler-plugin/13913
Maven插件 - JDK插件 以及 Tomcat 插件 知识点-Maven插件(了解) 1.目标 Maven是一个核心引擎,提供了基本的项目处理能力和建设过程的管理,以及一系列的插件是用来执行实际建设任务 maven插件可以完成一些特定的功能。例如,集成jdk插件可以方便的修改项目的编译环境;集成tomcat插件后,无需安装tomcat服务器就可以运行tomcat进行项目的发布与测试。 在pom.xml中通过plugin标签引入maven的功能插件。 --引入tomcat7的插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin “注意: Maven的中央仓库中只有Tomcat7.X版本的插件,而之前我们使用的是8.X的版本,如果想使Tomcat8.X的插件可以去其他第三方仓库进行寻找,或者使用IDEA集成外部Tomcat8极其以上版本
前几天工作之余,同事让我写一个Maven插件,因为项目很多很杂,我们公司又没有专业的数据库字典管理工具,都是我们开发人员用Excel整理一个数据字典给我们现场实施人员,每次增加新功能或该需求,增加表和修改数据时 ,此文不是讲如何维护Excel而是手写maven插件,对于我需要的功能用Maven插件来实现太简单了。 那就开始。 这里只介绍用IDEA的做法,当然其他工具也可以,只是我这边用的是IDEA。 参考maven官网添加依赖以及插件 <! 其实maven插件还有更多用处,跟多方法,你可以去官网查查:http://maven.apache.org/plugins/ 上面的项目地址在:https://github.com/zywaiting/ table-to-excel-maven 学习永远是自己的事,别人说了再多,自己不动手也是学不到太多东西,maven插件官网已给,项目地址已给,剩下的就靠你自己了,其实我写的连这个知识点的九牛一毛都不算
默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Executor (update, query, flushStatements, commit, rollback, getTransaction 这些都是更低层的类和方法,所以使用插件的时候要特别当心。 通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现 Interceptor 接口,并指定了想要拦截的方法签名即可。 自定义插件 需求: 把Mybatis所有执行的sql都记录下来。 " ref="trade" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> </beans> maven <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> 参考资料 MyBatis 插件
最后达到的效果就是希望读者朋友们在看完我写的这篇文章后,能够秒懂别人写的MyBatis插件并且能够开发出自己的MyBatis的插件。 文章导读 MyBatis 插件原理与实战 什么是插件? 插件就是在具体的执行流程插一脚(触发点、拦截器)来实现具体的功能。 一般插件会对执行流程中的上下文有依赖,抽象的说,我们也可以把MyBatis看作是JDBC的插件,只是功能越来来多,越来越强大,最后我们给了他一个新名字,叫做框架。 下面着重讲一讲我们的拦截点,因为插件就是基于我们的拦截点来做的扩展。 为切入点,跟踪到interceptorChain的pluginAll方法;最后通过一个简单的插件来实操了一波。
执行 mvn install 然后在返回工程就可以看到源代码了 在很多情况下,需要对于Maven工程的源代码进行源文件的打包,可以利用source插件来完成。 利用Maven的Source插件,对Maven工程的源码进行打jar包。 Plugin: http://maven.apache.org/plugins/maven-source-plugin/ <plugin> <groupId -- 绑定source插件到Maven的生命周期,并在生命周期后执行绑定的source的goal --> <executions> -- 绑定source插件到Maven的生命周期 --> <phase>compile</phase> <
maven插件主要是为maven中生命周期中的阶段服务的,maven中只是定义了3套生命周期,以及每套生命周期中有哪些阶段,具体每个阶段中执行什么操作,完全是交给插件去干的。 插件目标 maven中的插件以jar的方式存在于仓库中,和其他构件是一样的,也是通过坐标进行访问,每个插件中可能为了代码可以重用,一个插件可能包含了多个功能,比如编译代码的插件,可以编译源代码、也可以编译测试代码 插件前缀 运行插件的时候,可以通过指定插件坐标的方式运行,但是插件的坐标信息过于复杂,也不方便写和记忆,所以maven中给插件定义了一些简捷的插件前缀,可以通过插件前缀来运行指定的插件。 插件仓库 与其他maven构件一样,插件构件也是基于坐标存储在maven仓库中,有需要的时候,maven会从本地查找插件,如果不存在,则到远程仓库查找,找到了以后下载到本地仓库,然后使用。 插件前缀的解析 前面说过了使用mvn命令调用插件的时候,可以使用插件的前缀来代替繁琐的插件坐标的方式,那么maven是如何根据插件的前缀找到对应的插件的呢?
也就是说我们做maven插件无非就是想在maven流程中加入自己的一些东西,比如如果项目中用到了checkstyle做代码校验这种场景,除此之外还有maven插件独立运行的情况,比如mybatis逆向生成 目前作者知道的就这两种插件模式。总结一下就是内嵌于maven的主流程的插件,再或者独立运行的maven插件。这块我们将两者都演示一下。 maven install 在我们的目标项目中,我们引入这个插件。 引入插件之后,我们执行一下这里的maven指令。 这块我们的目标就达成了。 但是如果我们想让我们的插件在maven的生命周期内执行怎么做呐?这块我们应该在maven插件中指定插件执行的阶段。 至此我们开头说的maven插件的两个功能已经完成了,因为插件的开发很简单。所以这块也不知道总结个啥了。这个maven插件主要用于对项目进行一些统一的修改。
前言 以IntelliJ IDEA为例,通常我们调试maven项目时,都是直接点击调试按钮即可。 但maven编写的插件就不同了,由于插件需要打包成Jar加载到项目中,所以如果我们需要在编写插件源码时调试的话,就不能直接点击调试按钮了(因为没有Main类),那么该怎么办呢? 解决方案一(直接在插件项目中调试) 假设及正在编写的maven插件拥有如下坐标: <groupId>myPluginGroupId</groupId> <artifactId>myPluginArtifactId 然后配置maven插件项目 ? 增加Remote配置,并将其中的端口号改成和目标项目端口号相同的值即可。 现在可以开始调试啦 首先点击目标项目的运行按钮,启动Listening... 参考资料 《Maven实战》第17章介绍了编写maven插件的方法
文章目录 场景描述 插件功能 插件开发 第一步:创建插件项目 第二步:插件实现 2.1 声明mojo类(插件) 2.2 添加参数 2.3 execut方法实现自定义插件功能 2.4插件使用 场景描述 最近博主开发了一个用于接收数据的接口服务器 于是乎,博主又开始耍小聪明了,能不能让配置组打包的时候加个参数什么的来实现对常量类的修改,博主找遍了整个互联网都没找到这样的插件(或者说操作简单,兼容性好的插件),所以博主打算自己开发一个maven插件 插件功能 通过mvn指令传递参数来实现打包前修改项目源码。 插件开发 第一步:创建插件项目 IDEA新建一个maven项目,注意选择maven-archetype-mojo这个模板 ? /dependency> goal的作用后面会说明 2.2 添加参数 在使用maven插件的时候,有时需要传递一些参数,参数功能可以通过文档注释或者注解来声明。 下面是博主的插件类源码: package com.riclee; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException
编译 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId <target>1.6</target> </configuration> </plugin> 打war包 <plugin> <groupId>org.apache.maven.plugins </groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration warName>guancheng</warName> </configuration> </plugin> tomcat <plugin> <groupId>org.apache.tomcat.maven </groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration