常用插件及其用法位于:http://maven.apache.org/plugins/
1. Jetty server plugin
2. Dependency copy plugin
3. Surefire Test plugin
4. Uber jar plugin
5. Maven Source Plugin
1. Jetty Plugin
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.14.v20131031</version> <configuration> <scanIntervalSeconds>3</scanIntervalSeconds> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8089</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> </configuration> </plugin>
功能:为web项目添加一个内置的web服务器,通过这个插件,在plugins目录下会有一个jetty插件项
2. Copy Plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/flume.kafka.dependencies </outputDirectory> </configuration> </execution> </executions> </plugin>
将添加了这个plugin的maven模块,在做install操作时将该模块依赖的jar包全部copy到指定目录下
3. Surefire Test Plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <useSystemClassLoader>false</useSystemClassLoader> <skipTests>true</skipTests> </configuration> </plugin>
用于运行单元测试,在该模块下会添加一个插件,
4. Uber Jar Plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
依赖属性为provided的Dependency不会打到uber jar中
4. Maven Source Plugin
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin>
XX. maven-compiler-plugin
对模块按照指定的JDK版本进行编译:
<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF8</encoding> </configuration> </plugin>
1.maven-compiler-plugin
参考:http://maven.apache.org/plugins/maven-compiler-plugin/
在多人项目中,比较好的开发实践是项目本身指定JDK的版本,而不是项目组中的每个成员自己来指定。每个人使用的JDK版本不一致,导致代码的编译问题时有发生。
Maven中,可以使用maven-compiler-plugin来指定项目的jdk版本,
在用户管理这个web应用中,有一个聚合和父模块user-project和三个功能模块
user-project
user-core
user-service
user-web
我们可以为每个模块添加maven-compiler-plugin的版本控制,但是这样一来,重复代码甚多,如果要更改JDK的版本,每个功能模块的pom.xml都要修改一次,更合理的做法是在父模块user-project中进行定义,功能模块继承它,这类似于依赖的继承,在user-project的pom中添加如下代码:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <!--指定代码1.6版本兼容-> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </pluginManagement> </build>
在user-core,user-service和user-web中,分别做如下定义以继承user-project的maven-compiler-plugin的配置
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin>
问题:
做如上定义后,在user-core中使用JDK7的类,如ForkJoinPool,没有编译错,编译能成功,这是为什么??
2.maven-rar-plugin
对指定的目录打rar包,参考http://maven.apache.org/plugins/maven-rar-plugin/
3. 编译时跳过module下的测试代码的测试
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <skip>true</skip> </configuration> </plugin>
4.打成jar包时,指定mainClass
<plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>sparkStreaming.NetworkWordCount</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>
5.将一个Maven模块,连同它依赖的jar打包成Uber Jar
<!-- Maven shade plug-in that creates uber JARs --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
相关推荐
maven学习笔记,包含maven插件,maven的安装,中央仓库,自定义本地仓库等安装方法。
最新maven视频教程加源码笔记,内容完整有保证,是学习maven的不可多得的教程。
simple/ Maven Archtype插件创建了一个与artifactId匹配的目录——simple。这是项目的基础目录。 simple/pom.xml 每个项目在文件pom.xml里有它的项目对象模型 (POM)。这个文件描述了这个项目,配置了插件,...
现在maven插件地址多数不能用了,所以只能讲maven下下来使用,里面有些基本的指令,希望对你们有用
Maven 构建SpringMVC项目学习笔记 一、背景介绍 二、构建工程 2.1、用maven插件构建项目框架 2.2、完善项目 2.3、将工程变成web工程 三、工程SpringMVC配置 3.1 赋予工程的springmvc特性 3.2、添加Maven依赖 四、...
尚硅谷学习笔记+代码,Maven 教程 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具 1、构建 Java 项目开发过程中,构建指的是使用 『原材料生产产品』 的过程。 原材料 Java...
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
包含以下资料: Maven权威指南 Maven2_基础教程 maven2完全使用手册 Maven3实战笔记04Maven的生命周期和插件 Maven实战 Maven学习指南
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
包含:Maven2_基础教程.pdf\《Maven权威指南》-电子书下载(PDF)(中文)\maven2完全使用手册.docx\Maven3实战笔记04Maven的生命周期和插件.doc\Maven实战.pdf\Maven学习指南.pdf
在网上找了好久,终于找到,给大家分享出来,让大家看到
此文件为exe格式电子书,无需安装任何阅读软件就可以打开,由mybase笔记软件生成。 此电子书详细介绍了项目自动化构建工具Maven的使用,内容清晰简洁明了,易于...插件_常用插件列表 仓库_概念与配置 仓库_私服_Nexus
云的学习笔记系统代码 java云的学习笔记系统代码 基于SSM的云的学习笔记系统代码 1、云的学习笔记系统的技术栈、环境、工具、软件: ① 系统环境:Windows/Mac ② 开发语言:Java ③ 框架:SSM ④ 架构:B/S、MVC ⑤ ...