首页 技术 正文
技术 2022年11月10日
0 收藏 916 点赞 2,981 浏览 2402 个字

idea使用maven插件打jar包步骤以及遇到的问题

  idea自带了maven工具,idea右边点击maven选项:

  IDEA使用maven插件打jar包流程

一、在pom中添加插件,直接复制就好,如下选项

          <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>test.TestOperFile</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

注意:关于插件中这个地方需要注意一下:

IDEA使用maven插件打jar包流程

这里分为两种情况

  a.打包scala程序

    如果只是打包scala程序的话,这里代表的是主函数的方法名,一定是全路径名(包名+类名)

    jar包运行方式:java -jar test.jar [参数1 参数2…]

  b.打包spark程序

    如果是打包spark程序的话,这里可以随意,不影响,运行的时候需要指定类名即可

    jar包运行方式:

        spark-submit –class test.testOperator \
          –master yarn \
          –deploy-mode client \
          –driver-memory 3g \
          –executor-memory 2g  \
          –executor-cores 1 \
          –num-executors 4 \
          –jars /hadoop/datadir/deploy/lib/mysql-connector-java-5.1.7-bin.jar \
          –conf spark.sql.shuffle.partitions=100 \
          –conf spark.shuffle.sort.bypassMergeThreshold=5 \
          –conf spark.kryoserializer.buffer.max=128m \
          –conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
          –conf spark.sql.parquet.compression.codec=snappy \
          –conf spark.shuffle.sort.bypassMergeThreshold=5 \
          –conf spark.locality.wait.node=6 \
          –conf spark.locality.wait.process=6 \
          test.jar [参数1,参数2…]

        运行参数可以根据自己的需求进行调整

二、开始打包(清空target目录->编译->打包),有时候也需要执行install进行发布到仓库中,根据自己的需求

  IDEA使用maven插件打jar包流程

打包后的结果:

IDEA使用maven插件打jar包流程

*************************************************************************************************************************************************************

* 或者进行打包的时候后也可以直接打开idea底下的terminal,执行命令记性打包:mvn assembly:assembly

IDEA使用maven插件打jar包流程

*************************************************************************************************************************************************************

如果出现上图所示,说明打包成功,此时找到右边的target目录,下面会有两个包:

IDEA使用maven插件打jar包流程

  然后执行的时候,我们只需要执行第二个包就可以了,也就是名字长的那个包:

三,jar包的执行:

  a.对于scala程序的jar包,因为main函数已经在pom中打包之前指定了,所以执行的时候如果有参数,只需要传入相应的参数即可,用空格分开

    1、使用 “java -jar” 的方式提交:

    IDEA使用maven插件打jar包流程

    2、使用submit的方式提交程序

    IDEA使用maven插件打jar包流程

    可以看到,也可使用submit的方式进行提交,可以指定–class,也可以不指定

    b.对于spark程序的jar包,此时即使是在pom中指定了main函数,在提交的执行的时候必须按照spark程序的提交方式进行提交,即使用submit的方式,不能用 java -jar的方式提交,否则会报错

    1、使用submit的方式提交程序:

     IDEA使用maven插件打jar包流程

    这样提交运行之后是没有什么问题的

    2、使用 “java -jar” 的方式提交:

      IDEA使用maven插件打jar包流程

    报错,至于如何解决,本人暂时还没有找到好的方案。希望能够帮到需要的童鞋

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,489
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,904
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,490
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290