实际生产中,我们经常要将maven项目打包成jar,然后直接放入hadoop集群环境中运行。之前对于maven项目的使用走了很多弯路,调试了好久,终于调试通过了。以下将为大家分享一下经验。本文讲解的是打成jar包,不是war包。
首先在pom.xml中添加如下代码(添加插件,使得dependencies与项目源码打成一个jar):
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest>
<!--此处存放运行的主类--> <mainClass>org.conan.mymahout.recommendation.svd.SvdRunner</mainClass> </manifest> </archive> <descriptorRefs>
<!--此处固定写法--> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
在项目上,右键单击 Run as >> Maven build,在如下图所示的方框位置添加如下:
assembly:assembly
点击apply和run
最终控制台显示如下,表示build成功。
------------------------------------------------------- Running org.conan.mymahout.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myMahout --- [INFO] Building jar: E:\HadoopWorkPlat\workspace\myMahout\target\myMahout-1.0-SNAPSHOT.jar [INFO] [INFO] <<< maven-assembly-plugin:2.5.5:assembly (default-cli) < package @ myMahout <<< [INFO] [INFO] [INFO] --- maven-assembly-plugin:2.5.5:assembly (default-cli) @ myMahout --- [INFO] Building jar: E:\HadoopWorkPlat\workspace\myMahout\target\myMahout-1.0-SNAPSHOT-jar-with-dependencies.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 32.674 s [INFO] Finished at: 2018-05-25T17:48:17+08:00 [INFO] Final Memory: 210M/1004M [INFO] ------------------------------------------------------------------------
最终生成的jar包所在目录在控制台中有显示,如下所示: