为了更好的阅读本文,请先学习有关maven的生命周期、phase、goal相关知识。可移步我的这篇文章:
【精】讲透Maven-- Build Lifecycle, Phases和 Goals
好的,进入正题:今天我们来学一下自定义maven插件。
在hadoop的源码中,有一个module是hadoop-maven-plugins,如下图:
这个模块主要功能是实现了一个自定义的maven插件,用来帮助执行cmake,编译native的代码并打包成静态库和动态库。
因此本文的目标有两点:
① 熟悉hadoop打包native库的整体过程
② 从①的过程中学习如果自定义一个maven plugin
一、Hadoop打包native库的过程
我们如果需要编译hadoop的native本地库时,会执行如下命令:
mvn clean install -Pdist,native -DskipTests -Dmaven.javadoc.skip
注意在-P后面指定了native这个profile。
因此我们找到了hadoop-common这个module下的pom.xml里的native profile,如下图所示: