一直没注意看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
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】maven 插件开发实战 ? 前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。 这些命令,其实底层都是一个一个的 maven 插件。 如何开发自己的插件 1. maven 插件的命名规范 在写一个项目之前,第一件事就是确定一个名称。maven 插件也不例外。 但是规范很简单,一句话就可以概括,**官方插件命名的格式为 maven-xxx-plugin,非官方的插件命名为 xxx-maven-plugin 。 ,这个是开发 maven 插件必须依赖的核心包。 我们在写插件时,当然不会这样写,但是通过这个 demo,你就掌握了 maven 插件的大部分知识,可以自己做一些很有趣的插件。 4.
熟悉一个东西最全的方式莫过于官网文档(前提是官网有相关介绍并且版面布局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.
自带核心插件 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现在是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>
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 命令。
当前 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是如何根据插件的前缀找到对应的插件的呢?
在JVM项目中可以使用Maven的插件方式将.adoc文件格式转化为PDF、HTML、EPUB等文件格式。 " xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0 >UTF-8</maven.compiler.encoding> <maven.compiler.source>1.8</maven.compiler.source> < </plugin> </plugins> </build> </project> 执行mvn命令 mvn clean process-asciidoc 由于PDF格式插件没有安装中文字体 参考资料 Example Asciidoctor插件中文文档 Asciidoctor-PDF 中文乱码问题解决方案
之前试过自己折腾一下,解决这个问题,但是实在不了解maven插件这块,因此一直就忍了将就用,大不了就没有注释嘛;前几个月就把maven源码下载下来了,但是源码里一堆的单元测试,却一直不知道怎么像我们平时使用的方式那样去 是吧,这里的答案就在spring boot的maven插件里了。今天我们肯定不会那么复杂,搞个clean插件学习下,就ok了。 ,不是的,默认的,就会给我们的maven的生命周期绑定一些插件,比如在clean阶段绑定maven-clean-plugin插件。 调试clean插件 怎么调试呢,首先得触发maven的clean插件执行,是吧?怎么触发执行呢? 去哪里打断点--最推荐的方式 我们还是不搞那些有的没的了,来官方的插件开发地址拉代码: https://maven.apache.org/scm.html 下载后解压,发现是个maven工程,舒服了
IntelliJ IDEA 提供了一款Maven Helper 插件,该插件可以说是必须的,因为优点太多了。 Maven helper 插件提供了如下特性: 可以方便的找到和排除冲突的依赖项 可以 run/debug 包含当前文件的模块或者根模块 可以 run/debug 当前测试文件。 /MavenSurefireFailsafeExamples Maven helper 的用法: 右键点击 Editor | Run Maven CTRL + ALT + R快速运行maven goals CTRL + SHIFT + ALT + R快速运行跟模块的maven goals 自定义goals:Settings | Other Settings | Maven Helper 定义快捷键:Settings | Keymap | Plug-ins | Maven Helper 打开 pom.xml 文件, 点击 Dependency Analyzertab
也就是说我们做maven插件无非就是想在maven流程中加入自己的一些东西,比如如果项目中用到了checkstyle做代码校验这种场景,除此之外还有maven插件独立运行的情况,比如mybatis逆向生成 目前作者知道的就这两种插件模式。总结一下就是内嵌于maven的主流程的插件,再或者独立运行的maven插件。这块我们将两者都演示一下。 maven install 在我们的目标项目中,我们引入这个插件。 引入插件之后,我们执行一下这里的maven指令。 这块我们的目标就达成了。 但是如果我们想让我们的插件在maven的生命周期内执行怎么做呐?这块我们应该在maven插件中指定插件执行的阶段。 至此我们开头说的maven插件的两个功能已经完成了,因为插件的开发很简单。所以这块也不知道总结个啥了。这个maven插件主要用于对项目进行一些统一的修改。