在开发UDF的过程中需要将jar包上传到服务器来当作函数引用这就涉及到了maven打包;
在之前开发的时候都是粒度贼粗的打包,将所有组的依赖都打包直接在服务器上maven package,但是这种方法注定是不可行的,
- 1.jar包太大
- 2.服务器上的环境已经存在某些甚至是大部分程序,一些基础包就是不必要的了比如在hadoop集群上那么hadoop-common就是非必需的依赖了;
这就可以选择在本地打包然后上传集群:下面记录下打包的过程:
1.设置artifacts
file->projectstructure-->左侧选项框的Artifacts-->中间框的‘ +’
2.选择jar-->from modules dependences会看到下图
(如果有主类的话就添加主类,但是udf是没有mian方法的就什么都不选直接点ok)
3.选择需要打包的依赖展示的是pom文件中所有的依赖,将不要的选中然后点击‘-’即可,一定不要将自身工程的也删掉!!
如上图我的打包选项中只有一个依赖和本身的项目;
点击ok即可;
最后一步是打包:
窗口最上方的build按钮,选择build artifacts-->build/rebuild即可完成打包。找到jar包上传服务器就可正常使用;