Maven插件maven-antrun-plugin的使用
以下引用官方的介绍http://maven.apache.org/plugins/maven-antrun-plugin/:
一、什么是maven-antrun-plugin?
该插件提供从Maven内运行Ant任务的功能。您甚至可以将您的Ant脚本嵌入POM!
这个插件不是提供污染POM的手段意图,因此它鼓励所有Ant任务移动到build.xml文件并使用Ant的POM的<ant/> task调用它(或者说所有在build.xml文件的Ant任务移动到POM中,并使用<ant/> task调用它)。
这个插件的主要目的之一是方便从Ant基础项目迁移到Maven。某些项目可能无法迁移,因为它们依赖于默认情况下Maven不提供的自定义构建功能。
二、坐标
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
三、简单使用,参考官网http://maven.apache.org/plugins/maven-antrun-plugin/usage.html
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase> <!-- Maven的生命周期阶段 --> </phase>
<configuration>
<target> <!--
将任务Ant任务放在这里,还可以在这里添加一个build.xml文件
--> </target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
当然,如上所示的配置其实还少了几个属性,不过这不影响运行,因为默认是继承超级POM的。
提示:
1、Maven的生命周期阶段参考:http://www.cnblogs.com/EasonJim/p/6816340.html
2、在<target>中的标签只有搞过Ant集成的才会比较熟悉,如果想要使用其中的标签,参考官方提供的文档:http://ant.apache.org/manual/tasksoverview.html
以下将展示官方实际项目上的POM:
http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html
http://maven.apache.org/plugins/maven-antrun-plugin/examples/tasksAttributes.html
http://maven.apache.org/plugins/maven-antrun-plugin/examples/customTasks.html
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-test-app</artifactId>
<groupId>my-test-group</groupId>
<version>1.0-SNAPSHOT</version> <build>
<plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/> <echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="test classpath: ${test_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
注意:<id>为唯一的标识,可以是任意。
四、Ant插件只有一个目标(goal)
既:antrun:run,参考:http://maven.apache.org/plugins/maven-antrun-plugin/run-mojo.html
五、其它Ant集成例子
参考:http://maven.apache.org/plugins/maven-antrun-plugin/tasks/tasks.html
总结:
1、简单的说这个Ant插件就是为了方便把之前在Ant集成的任务迁移到Maven中去、
2、在Maven中的<target>中可以很方便的使用Ant的标签。
3、通过<phase>可以很方便的指定Maven的生命周期。并且指定生命周期之后,可以在生命周期运行时直接触发<target>中的任务。
Maven插件maven-antrun-plugin的使用的更多相关文章
- groovy入门(2-1)Groovy的Maven插件安装:Plugin execution not covered by lifecycle configuration
参考链接:http://www.cnblogs.com/rightmin/p/4945797.html 1.引入groovy的jar包 2.引入groovy编译插件 3.遇到问题 Plugin exe ...
- Maven学习(十六)-----Maven插件
Maven插件 Maven 是一个执行插件的框架,每一个任务实际上是由插件完成的.Maven 插件通常用于: 创建 jar 文件 创建 war 文件 编译代码文件 进行代码单元测试 创建项目文档 创建 ...
- Java-Maven-Runoob:Maven 插件
ylbtech-Java-Maven-Runoob:Maven 插件 1.返回顶部 1. Maven 插件 Maven 有以下三个标准的生命周期: clean:项目清理的处理 default(或 bu ...
- 【mybatis源码学习】利用maven插件自动生成mybatis代码
[一]在要生成代码的项目模块的pom.xml文件中添加maven插件 <!--mybatis代码生成器--> <plugin> <groupId>org.mybat ...
- 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库
1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...
- maven课程 项目管理利器-maven 3-4 eclipse安装maven插件和新建maven项目
本节主要讲了两个主要内容, 1 eclipse安装maven插件 2 新建maven项目 3 本人实操 1 eclipse安装maven插件 eclipse4.0以上和myec ...
- eclipse插件——maven
项目开发中遇到的问题 都是同样的代码,为什么在我的机器上可以编译执行,而在他的机器上就不行? 为什么在我的机器上可以正常打包,而配置管理员却打不出来? 项目组加入了新的人员,我要给他说明编译环境如何设 ...
- [Maven]Apache Maven 入门篇
作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...
- Spring Boot的Maven插件Spring Boot Maven plugin详解
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Mave ...
- Maven版本管理-Maven Release Plugin插件
一.什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基 ...
随机推荐
- build_mem_type_table
该函数设置mem_types结构体数组,结构体定义如下: struct mem_type { unsigned int prot_pte; //二级页表属性 unsigned int prot ...
- 【HIHOCODER 1181】欧拉路·二
描述 在上一回中小Hi和小Ho控制着主角收集了分散在各个木桥上的道具,这些道具其实是一块一块骨牌. 主角继续往前走,面前出现了一座石桥,石桥的尽头有一道火焰墙,似乎无法通过. 小Hi注意到在桥头有一张 ...
- 《Scrum实战》第0次课【如何学习敏捷】全团课后任务汇总
<Scrum实战>第0次课作业 完成情况: 课程名称:如何学习敏捷 1组 孟帅 孟帅: http://www.cnblogs.com/mengshuai1982/p/7096338.htm ...
- hexo博客出现“Cannot GET/xxxx”的错误
最近在github上搭了一个hexo博客系统,非常轻量级的,只需要几句nodejs命令就搭建完成了.我了解了一下,hexo博客是基于nodejs写的,采用ejs模板引擎编写页面. 因为默认的主题风格不 ...
- Zend Framework 2中如何使用Service Manager
end Framework 2 使用ServiceManager(简称SM)来实现控制反转(IoC).有很多资料介绍了service managers的背景,我推荐大家看看this blog post ...
- python - 函数的相互调用 及 变量的作用域
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_函数的相互调用及变量的作用域.py@ide: PyCharm C ...
- python学习-- 两种方式查看自己的Django版本
[第一种方式] Windows系统下 按住Windows按键 + R 进入搜索:搜索CMD进入控制台:输入Python进入Python解释器 Linux系统下 直接使用终端调用Python解释器 接下 ...
- c中#与##的应用思考
c中#与##的应用思考 原创 2014年02月25日 22:01:35 927 一. 思考出处 在读<<linux 0.12完全剖析>>初始化部分, init进程是通过fork ...
- 【Luogu】P3224永无乡(splay)
题目链接 splay模板,启发式合并(其实就是暴力插入)即可. 顺便吐槽时限,带垃圾回收而已……不至于最后一个点死活不让过吧? #include<cstdio> #include<c ...
- vue 配合 element-ui使用搭建环境时候遇到的坑
在需要使用element-ui的时候,直接引入文件,发现会报错,解析不了css文件和字体,需要在webpack里面配置上css-loader和style-loader,最好的做法是把element-u ...