文章目录

  • 说明区别:
  • ↓下面说明使用流程
  • 举例说明:
  • 注意:

说明区别:

  • 瘦包:直接打包代码和环境变量,不打包任何依赖包。
  • 胖包:将maven项目中的所有代码、环境变量、依赖包和项目打为一个包 。

↓下面说明使用流程

第一步:<dependency>标签设置<scope>provided</scope>
第二步:设置<build>的<plugin>使用<artifactId>maven-compiler-plugin</artifactId>和<artifactId>maven-assembly-plugin</artifactId>

举例说明:

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.0.0</version><scope>provided</scope>
</dependency>
<build><plugins><plugin><!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 --><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),会存在target不同于source的情况 --><!-- 源代码使用的JDK版本 --><source>1.8</source><!-- 需要生成的目标class文件的编译版本 --><target>1.8</target></configuration></plugin><plugin><artifactId>maven-assembly-plugin</artifactId><version>2.5.5</version><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>Test2</mainClass><!--这里改成自己的主类相对位置--></manifest></archive></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin><plugin><groupId>net.alchim31.maven</groupId><artifactId>scala-maven-plugin</artifactId><version>3.2.2</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions></plugin></plugins></build>

注意:

配置这种打指定依赖瘦包的情况后,idea的main方法无法执行,因为依赖被标记provided后运行main不会加载,需要配置如下即可

maven打瘦包,且只打入部分想打入的依赖瘦包相关推荐

  1. ttf字库瘦身,只保留自己想要的字

    在做应用或游戏的时候往往需要各种不通的字体效果,例如按钮, 用ttf字库显得有比较大一般有好几M,用图片也很占空间, 但是ttf字库可以有瘦身版,这个就要自己搞了,英文的还好处理,下载一个你需要的tt ...

  2. 我的世界服务器怎么修改材质包,超实用解析我的世界服务器怎么加材质包

    游戏介绍 我的世界这个游戏的可玩性很高,游戏里的一些活动包括采集矿石.与敌对生物战斗.合成新的方块与收集各种在游戏中找到的资源的工具.游戏中的无限制模式让玩家在各种多人游戏服务器或他们的单人模式中进行 ...

  3. 通过命令运行jar包(指定外部依赖jar包)

    前提条件: 1.本机已安装jdk 2.已配好jdk的环境变量 通过以下命令查询jdk是否配好 java -version 执行出现java版本信息即配好 lizhi@LiZhideMacBook-Ai ...

  4. Maven打包(瘦身打包部署),不包含第三方依赖jar包

    方式1 pom 配置 <properties><startClass>com.answer.jaemon.Application</startClass> < ...

  5. Maven 排除依赖jar包

    当我们引入第三方jar包的时候,难免会引入传递性依赖,有些时候这是好事,然而有些时候我们不需要其中的一些传递性依赖 比如我们不想引入传递性依赖commons-logging,我们可以使用exclusi ...

  6. idea如何打开pom引用依赖_IDEA使用Maven管理项目包,缺少pom文件中引入的依赖包...

    1. 说在前面 最近和其他项目团队合作过程中,由于使用 idea 进行开发,之前也没有接触过太多,本着记录分享的心态,虽有此文.主要说两点:第一,使用 maven 构建项目的过程中,在 pom 文件引 ...

  7. Eclipse下新建Maven项目、自动打依赖jar包

    当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访 ...

  8. maven依赖的jar包版本不一样_Maven依赖jar包冲突常见的解决方法

    项目中,经常会遇到ClassNotFound,NoSuchMethod异常,第一反应往往是类路径不对,jar没有正确的引用.第一步判断jar是否加载,还是 加载的jar由于maven依赖管理存在传递依 ...

  9. python有三个包如何只导入两个包_云计算开发学习笔记:Python3如何从一个包中导入*...

    来源:TechWeb.com.cn 设想一下,如果我们使用 from sound.effects import *会发生什么?Python 会进入文件系统,找到这个包里面所有的子模块,一个一个的把它们 ...

最新文章

  1. string 基本用法
  2. C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
  3. 设计模式入门,适配器模式,c++代码实现
  4. OpenCart之商品管理教程
  5. 圈子 | 金融圈小伙伴讲述1929大崩盘那些事儿
  6. leetcode怎么用时间刷_刷完700多题后的首次总结:LeetCode应该怎么刷?
  7. 使用LD链接时候文件的顺序
  8. android handler的机制和原理_Android 插件化原理——Hook机制之AMSamp;PMS解析
  9. python获取当前时间的源代码_python怎么获取当前系统时间
  10. 扩散模型——下一个图像生成热点,快上车!!!
  11. 预测科技未来发展趋势的10个定律
  12. sklearn svm 调参_sklearn调参(验证曲线,可视化不同参数下交叉验证得分)
  13. 【Android 进程保活】应用进程拉活 ( 应用进程拉活简介 | 广播拉活 | 显示广播与隐式广播 | 全家桶拉活 )
  14. 基于飞浆ERNIE3.0百亿级大模型实现中文短文本分类任务
  15. 友价商城不支持php5.3_PHP友价T5商城源码 UC论坛整合送手机版程序七套模板_源码下载...
  16. 不规则多边形区域的面积计算算法
  17. [程序人生] --- 永远的87版--电视连续剧《红楼梦》音乐欣赏
  18. 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码
  19. c语言send发送结构体,Socket编程中用send发送结构体
  20. python基础(19):多重继承

热门文章

  1. (二)计算机组成原理——计算机的基本组成
  2. 数据结构与算法之Python实现——单链表
  3. UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xbb in position 51: ord
  4. 每日N+1题 -- 算法练习 Day9
  5. python在cmd中文乱码解决办法
  6. sysctl设置系统参数
  7. VMware共享文件夹设置
  8. C++中方括号[]的作用总结
  9. 浪漫主义计算机科学家的真知灼见——《代码整洁之道》
  10. Android 进阶——Framework 核心之Android Storage Access Framework(SAF)存储访问框架机制详解(二)