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

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

  

一、在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>

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

这里分为两种情况

  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底下的terminal,执行命令记性打包:mvn assembly:assembly

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

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

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

三,jar包的执行:

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

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

    

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

    

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

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

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

     

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

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

      

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

  

IDEA使用maven插件打jar包流程的更多相关文章

  1. Maven工程引入jar包

    Maven项目引入jar包的方法 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—>点击Add Exte ...

  2. 如何在maven中添加jar包

    Maven 中央仓库地址: 1. http://www.sonatype.org/nexus/ 2. http://mvnrepository.com/ (本人推荐仓库) 3. http://repo ...

  3. 转:maven项目添加jar包.

    很多新手都不知道如何在maven项目里添加jar包. 以前我还没接触maven的时候下载过一个demo,是maven项目. 我居然是照着他的pom.xml文件一个一个的写!!! 很多人认为理所当然的东 ...

  4. Maven工程引入jar包(转)

    Maven项目引入jar包的方法,希望能帮助有需要的朋友们 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—& ...

  5. 一篇关于Maven项目的jar包Shell启动脚本

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...

  6. IDEA中MAVEN项目打JAR包的简单方法

      Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令.   最简单的方法 ...

  7. setting-mirrorO以及下载jar包流程简介

    mirrorOf常见的几种配置如下 1.* 2.repo3 3.repo1,repo2,*,!repo3 4.external:* 第二个例子只配置了一个repo3,这个镜像只能匹配id是repo3的 ...

  8. Maven项目打Jar包,如何添加依赖

    之前介绍了使用spring-boot-maven-plugin插件打jar包,会把所有的依赖文件都导入,然后变成了一个可执行的jar包.这样的不好的地方就是,我实际上并不需要把依赖的jar包也打入到生 ...

  9. maven 工程导入jar包

    Maven项目引入jar包的方法,希望能帮助有需要的朋友们 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—& ...

随机推荐

  1. opensns的URL模式

    URL模式 如果我们直接访问入口文件的话,由于URL中没有模块.控制器和操作,因此系统会访问默认模块(Home)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的: htt ...

  2. KiCAD泪滴

    KiCAD泪滴 KiCAD没有自带的补泪滴功能,必须先下载一个插件,然后才能进行泪滴操作 链接 提取码:ey8o 1.下载泪滴插件,解压后将整个文件夹复制到目录  C:\Program Files\K ...

  3. MySQL数据库企业级应用实践(主从复制)

    MySQL数据库企业级应用实践(主从复制) 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App ...

  4. codeforces847J Students Initiation 网络流

    题目传送门 题意: 有n个人,m对关系,要求每对关系中,有且仅有一个人给另外一个人送礼物,并且使送出礼物最多的人送的礼物尽可能少.并输出送礼物的方案. 思路:这道题麻烦的是网络流模型的转换(废话). ...

  5. 【CSS】三栏布局的经典实现

    要求:自适应宽度,左右两栏固定宽度,中间栏优先加载: <!DOCTYPE html> <html> <head> <title>layout</t ...

  6. Android AppCompatActivity去掉actionbar fullScreen

    网上已经有很多关于这个问题的解决方案,如果你试了都没有解决,那么请往下看.首先说下网上说的解决方案: 方案一:在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主 ...

  7. master挂了的话pm2怎么处理 使用pm2方便开启node集群模式

    本文为转载 Introduction As you would probably know, Node.js is a platform built on Chrome's JavaScript ru ...

  8. js 连等操作,,

    奥术大师 var hu = { a : , c : , name : }; (function (){ var ccc = bbb = aaa = hu; })() console.log(bbb)* ...

  9. 58. jdk1.5新特性之静态导入

    jdk1.5新特性之--------静态导入 作用:简化书写(在我们使用静态方法的时候要用  类名.方法名的方式调用.而用静态导入只需要写方法名就可以调用) 语法:    1.作用于一个方法:     ...

  10. MapFields和并行计算(OpenFOAM)

    这几天研究了一下OpenFOAM里的MapFields和并行计算,总结一下. Case 1 先进行并行计算 SetFields 初始化流场 decomposePar 把初始化好的流场分块 mpirun ...