【MAVEN】项目管理插件maven-plugins
来源:互联网 发布:什么软件看小说免费 编辑:程序博客网 时间:2024/05/18 13:43
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。
Maven本质上是一个插件框架,他定义好了POM后,由插件来完成构建功能。今天主要介绍一些常用的Maven框架。
一.清理插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId></plugin>
该插件用来删除在构建期间生成的文件或文件夹。扫描并删除以下文件夹:project.build.directory,project.build.outputDirectory,project.build.testOutputDirectory, and project.reporting.outputDirectory。
使用方式: mvn clean
二.编译插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration></plugin>
source: 源代码编译JDK版本
target:目标平台编译版本
encoding:字符集编码
该插件包含两个goals:
compiler:compile
编译mainSource,在适宜的阶段自动执行。compiler:testCompile
编译testSource,在适宜的阶段自动执行。
使用方式: mvn compiler
三.资源插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>copy-resources</id> <!-- 绑定到package阶段,自动执行 --> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <encoding>UTF-8</encoding> <outputDirectory>outputdir</outputDirectory> <resources> <resource> <includes> <!-- 资源中包含的文件匹配符 --> <include>*.txt</include> </includes> <filtering>true</filtering> </resource> </resources> </execution> </executions></plugin>
该插件用于复制指定的资源文件到output directory. 有三个goals:
resources:resources
复制主代码的资源文件到指定的输出目录中,一般是开发包下的资源文件(project.build.resources),也就是src/main/resources下的。一般用于资源文件的打包resources:testResources
复制测试代码的资源文件到指定的输出目录中,一般是测试包下的资源文件(project.build.testResources)。resources:copy-resources
复制指定的资源文件到指定的目录中。专用来在多模块中复制资源使用。
四.依赖插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy-dependencies</id> <!-- 绑定到compile期间 --> <phase>compile</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- 表示是否不包含间接依赖的包 --> <excludeTransitive>false</excludeTransitive> <!-- 表示复制的jar文件去掉版本信息 --> <stripVersion>true</stripVersion> </configuration> </execution> </executions></plugin>
该插件用于从本地或者远程的repository中复制(或/和)解压依赖的jar到指定的位置。当前插件的goals较多,在此就不一一列举了。列举常用的如下:
- dependency:copy
将插件配置部分中定义的工件列表(<artifactItems>
),并将其复制到指定的位置。
- dependency:copy-dependencies
需要项目直接依赖项和可选传递依赖项的列表,并将它们复制到指定的位置。
五.打包插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <!-- 可以有多个descriptorRefs --> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- 可以指定一个特殊的descriptor --> <!-- <descriptors> <descriptor>src/assembly/src.xml</descriptor> </descriptors> --> <!-- 绑定执行期间--> <executions> <execution> <id>make-assembly</id> <!-- this is used for inheritance merges --> <phase>package</phase> <!-- bind to the packaging phase --> <goals> <goal>single</goal> </goals> </execution> </executoins> <!-- 创建一个可执行的jar --> <archive> <manifest> <mainClass>org.sample.App</mainClass> </manifest> </archive> </configuration></plugin>
该插件主要用于将依赖的jar,模块,site文档,其他的文件等聚合到一个单独的archive中。archive支持如下格式:
- zip
- tar
- tar.gz (or tgz)
- tar.bz2 (or tbz2)
- jar
- dir
- war
- and any other format that the ArchiveManager has been configured for
想要使用Assembly插件,你需要:
- 选择或者写好一个descriptor去使用
- 在你的项目中配置好Assembly插件
- 在你的项目中执行 mvn assembly:single
or mvn package
- 【MAVEN】项目管理插件maven-plugins
- maven plugins
- Maven - Plugins
- Maven Plugins
- eclipse安装maven插件开发WEB项目,解决错误:Failure to transfer org.apache.maven.plugins:maven-resources-plugin:pom
- maven入门:生命周期和插件Plugins(四)
- maven 无法下载org.apache.maven.plugins插件
- 建maven工程时插件出错org-apache.maven.plugins
- 09、maven插件管理
- Maven实战(插件管理)
- maven3+项目管理命令总结 (错误解决:Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2)
- Using Maven Plugins --org.apache.maven.plugins
- maven-plugins---maven-assembly-plugin
- Maven-项目管理
- maven管理java项目
- MAVEN 项目管理
- maven管理eclipse项目
- 使用Maven管理项目
- DevExpress VCL 15.2.2 Full Source XE10.1 Berlin
- 数据结构C语言——用二叉链表示二叉树
- 深入理解 Spring 事务原理
- Node——异步I/O
- 用 CSS 隐藏页面元素的 5 种方法
- 【MAVEN】项目管理插件maven-plugins
- java java.lang.NoClassDefFoundError记录
- Python爬虫----实例: 抓取百度百科Python词条相关1000个页面数据
- 车小胖谈网络:MTU 与 MSS
- Window 通过cmd查看端口占用、相应进程、杀死进程等的命令
- 2016 多校最后一题 (HDU 5724) Chess (组合博弈)
- 安卓项目之淘忆2.0的界面设计部分三
- Android_Matrix
- code review