Maven实战之antrun插件

在Maven实际使用过程中,有时候在对一些旧有的项目的做从Makefile和ant到Maven迁移时需要对一些步骤做特殊处理,比如说编译JNI代码,虽然Maven有个native插件可以用,但需要将原有项目JNI的编译步骤重写,这在有些时候显然不太适合,比如时间压力比较大的情况下。其实这种情况可以使用Maven的antrun插件来做,这样做的好处就是可以重用原来写好的Makefile,相对来说还是比较简单也是最快的。具体信息可以参考http://maven.apache.org/plugins/maven-antrun-plugin/。

Maven的antrun用起来也是非常简单的,就是在代码里嵌入类似以下代码片段:

	...
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>package</id>
						<phase>package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo message="make ..."/>
								<exec dir="src/main/c" executable="make" failonerror="true" />
							</tasks>
						</configuration>
					</execution>
					<execution>
						<id>clean</id>
						<phase>clean</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo message="make clean ..."/>
								<exec dir="src/main/c" executable="make" failonerror="true">
									<arg line="clean"/>
								</exec>
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	...

* 代码中定义了两个execution节点,分别执行原来Makefile中定义的make和make clean。这里可以将tasks节点定义成任意自己想要运行的ant任务;

* 在第一个execution节点下,把phase定义成package,goal定义成run,是为了使在运行"mvn package"的时候自动执行第一个execution节点下的ant任务;

* 在第二个execution节点下,把phase定义成clean,goal定义成run,是为了使在运行"mvn clean"的时候自动执行第二个execution节点下的ant任务;

转自:http://blog.csdn.net/kongxx/article/details/6998965

时间: 2024-07-29 09:28:54

Maven实战之antrun插件的相关文章

[Maven实战](2)Eclipse插件m2eclipse

1. 简介 Eclipse是一款非常优秀的IDE.除了基本的语法标亮,代码补齐,XML编辑等基本功能之外,最新版的Eclipse还能很好的支持重构,并且集成了JUnit,CVS等各种流行工具.可惜Eclipse默认没有集成Maven的支持.Sonatype公司建立了m2eclipse项目,这是一款十分强大的Maven插件. 2. m2eclipse安装 启动eclipse之后,在菜单栏中选择Help,然后选择Install New Software,接着就会有一个Install对话框.单击wor

《maven实战》学习笔记2——maven安装(windows和eclipse插件)

前言 由于我的工作中开发环境就是windows,IDE是eclipse,因此安装也只涉及和记录这两部分,在看书和动手的过程也就直接跳过其他部分. 笔记 windows中maven的安装 安装条件 maven依赖于java,因此安装和使用maven,要先确保已安装了jdk并配置好jdk的环境变量. 检查jdk是否安装并配好环境变量,可以再windows的cmd窗口执行java -version查看,如果如下所示,则证明jdk安装和配置正确. C:\Users\tzx>java -version j

Maven实战

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

[Maven实战](5)Archetype生成项目骨架

Hello World项目中有一些Maven的约定:在项目根目录中放置pom.xml,在src/main/java目录下放置项目的主代码,在sc/test/java中放置项目的测试代码.之所以一步一步的展示这些步骤,就是为了让我们这些菜鸟得到最真实的感受.我们称这些基本的目录结构和pom.xml文件内容为项目的骨架. 如下就是我们项目的目录结构骨架: 但是我们不希望每次创建项目时,都是手动一个一个的创建我们的目录结构,重复这些没有什么意义的事情.为此Maven提供了Archetype来帮助我们快

[Maven实战](4)eclipse创建Maven项目

介绍前面Hello World项目的时候,并没有涉及IDE,这样一个简单的项目,使用最简单的编辑器也能完成.但是对一个稍微大一些的项目来说,还是推荐使用IDE.这一篇文章我们在m2eclipse帮助下使用eclipse创建Maven项目. 1. 创建 使用IDE创建一个Maven项目非常简单,选择菜单项File->New->Other,在弹出的对话框中选择Maven下的Maven Project,然后点击Next按钮. 图1 在弹出的New Maven Project对话框中,使用默认的选项.

《maven实战》学习笔记1——maven是什么?为什么要用maven?

前言 工欲善其事,必先利其器.对于java web开发者而言,或者说对于目前大部分java web开发者而言,eclipse.maven.svn.tomcat可能就是目前最常用也是必会的武器了,所以为了更高效的开发和解决问题,经过一番思考后我决定系统性的学学这几样武器. 这几样在我看来一样的重要,也就没有先后之分.都要学,于是我便随便抽了一个,就先从maven开始,主要是结合<maven实战>一书的电子版和纸质版来学习和实践. 为了更好的记忆,同时也为了能在学习的过程中帮到更多人,遂决定做这个

Maven实战. 导读

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

Maven实战1.1何为Maven

Maven实战第1章Maven简介1.1何为Maven Maven这个词可以翻译为"知识的积累",也可以翻译为"专家"或"内行".本书将介绍Maven这一跨平台的项目管理工具.作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理.无论是小型的开源类库项目,还是大型的企业级应用:无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手. 1.1.1何为构建 不管你是否意识到

实战给AW_Blog插件添加缓存(续)

两年前的文章(实战给AW_Blog插件添加缓存)描述了一个Block Cache的实例,最近发现代码其实写的有点累赘,后台保存时自动触发刷新缓存并不需要自己去写刷新的动作,系统原生的Model继承类Mage_Core_Model_Abstract里已经有实现这个动作的代码,只需要简单的配置下变量就能实现.修改后的方案如下(Block类的所需修改代码不变) 打开AW_Blog_Model_Post这个文件,在头部定义一个常量,再定义一个变量 const CACHE_TAG = 'aw_blog';