首先看看工程目录结构

如图 (ReadLogByThread 为 MainClass):

方法一: mvn clean assembly:assembly

下面是 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.test</groupId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>testkafka</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 在这里定义你的入口类 --><mainClass>ReadLogByThread</mainClass></properties><artifactId>${mainClass}</artifactId><dependencies><!-- 在这里添加你的依赖 --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><!-- 你也可以在这里自己写MainClass --><mainClass>${groupId}.${mainClass}</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration></plugin></plugins></build>
</project>

在项目的目录下执行 mvn clean assembly:assembly 
然后会在项目下生成 target 文件夹,并有两个jar包,一个包含依赖,一个不包含

方法二: mvn clean package (assembly方式)

下面是 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.test</groupId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>testkafka</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mainClass>ReadLogByThread</mainClass></properties><!-- 在这里定义你的入口类 --><artifactId>${mainClass}</artifactId><dependencies><!-- 在这里添加你的依赖 --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><mainClass>${groupId}.${mainClass}</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>assembly</goal></goals></execution></executions></plugin></plugins></build>
</project>

在项目的目录下执行 mvn clean package 
然后会在项目下生成 target 文件夹,并有两个jar包,一个包含依赖,一个不包含

方法三: mvn clean package (shade方式)

下面是 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.test</groupId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>testkafka</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mainClass>ReadLogByThread</mainClass></properties><!-- 在这里定义你的入口类 --><artifactId>${mainClass}</artifactId><dependencies><!-- 在这里添加你的依赖 --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><executions><!-- Run shade goal on package phase --><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><!-- Do not copy the signatures in the META-INF folder.Otherwise, this might cause SecurityExceptions when using the JAR. --><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>${groupId}.${mainClass}</mainClass></transformer></transformers><createDependencyReducedPom>false</createDependencyReducedPom></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>

在项目的目录下执行 mvn clean package 
然后会在项目下生成 target 文件夹,并有两个jar包,一个包含依赖,一个不包含

方法四: mvn clean package (shade方式)

注:推荐该方法,可以过滤签名文件,防止报一些莫名其妙的错误 
下面是 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.test</groupId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>testkafka</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mainClass>ReadLogByThread</mainClass></properties><!-- 在这里定义你的入口类 --><artifactId>${mainClass}</artifactId><dependencies><!-- 在这里添加你的依赖 --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><executions><!-- Run shade goal on package phase --><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><!-- Do not copy the signatures in the META-INF folder.Otherwise, this might cause SecurityExceptions when using the JAR. --><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>${groupId}.${mainClass}</mainClass></transformer></transformers><createDependencyReducedPom>false</createDependencyReducedPom></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
</project>

在项目的目录下执行 mvn clean package 
然后会在项目下生成 target 文件夹,并有两个jar包,一个包含依赖,一个不包含

方法五: mvn clean package (copy方式)

下面是 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.test</groupId><packaging>jar</packaging><version>1.0-SNAPSHOT</version><name>testkafka</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mainClass>ReadLogByThread</mainClass></properties><!-- 在这里定义你的入口类 --><artifactId>${mainClass}</artifactId><dependencies><!-- 在这里添加你的依赖 --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix><mainClass>${groupId}.${mainClass}</mainClass></manifest></archive></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin></plugins></build>
</project>

在项目的目录下执行 mvn clean package 
然后会在项目下生成 target 文件夹,并有一个不包含依赖包的jar,和一个lib文件夹 
注:两个在同一个目录才能运行

方法六: Intellij idea 手动打包

注:不建议该方法 
我的 Intellij idea 为 2016.2 版,操作如下:

  1. 点击 File -> Project Structure
  2. 点击 左侧 Artifacts -> 绿色加号 -> JAR -> From modules with dependecies…

  1. 选择你的 MainClass 和 Direcory for META-INF/MANIFEST.MF:,然后点击 OK 
    注:MANIFEST.MF 位置选 所在项目的根目录

  1. 勾选 Build on Make,然后 OK 或者 Apply 就行。

当你每次 Build -> Make Project 的时候,就会在项目根目录下生成 out 文件夹, out/artifacts/**_jar/ 下为包含依赖的jar包

原文地址:https://blog.csdn.net/jiecxy/article/details/52458061

Maven 打包-添加第三方包、依赖包 mvn clean package相关推荐

  1. maven手动添加第三方的jar包

    添加原因:当我们在使用maven创建工程时,往往在maven的库中的包不能满足我们的需求,这时需要我们手动添加第三方包到本地库中.     操作步骤: 1.首先在dos命令(或者linux下的终端)找 ...

  2. maven 加入第三方库_maven 手动添加第三方的jar包

    maven项目手动引入第三方jar包项目打包 项目有时候需要依赖第三方jar包,一般会去maven仓库寻找坐标,但有时候maven仓库并没有提供,我们需要手动下载jar包并导入项目. maven库中并 ...

  3. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  4. Maven 打包成第三方jar包且把pom依赖包打入进来的方法

    <Maven 打包成第三方jar包且把pom依赖包打入进来的方法> 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! <Maven 打包成第三方jar包且把po ...

  5. 【Maven学习】Maven打包生成包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134583 ******************************************* ...

  6. maven打包可执行的jar包-包含依赖jar

    maven打包可执行的jar包: 1. 首先确保编辑器里maven环境正常 2. 运行打包的jar文件 3. 测试添加依赖后打包. 4. Unable to access jarfile test-m ...

  7. maven打包--同时将仓库依赖和本地依赖的jar包也打进去

    目录 maven添加依赖 maven添加本地依赖 项目打包 maven打包 将依赖包一同打进去 将本地依赖包也一同打包 可能出现的问题 依赖包不与项目代码一同编译 maven添加依赖 首先,如何在ma ...

  8. maven打包忽略注解_java lombok包在maven已经配置,但是注解没用

    如果你是用eclipse作为开发环境,配置了maven依赖以后,还需要在eclipse/myeclipse中手动安装lombok. 其实就是加一个jar包,添加2行代码 1. 将 lombok.jar ...

  9. maven明明本地仓库有依赖包,还会远程下载的问题

    我今天在无网的环境下,打算进行maven编译打包,可是明明有本地仓库,也配置了本地仓库,但是还是会从远程下载 然后再各大网友的帮助下(百度,谷歌),查询到主要的原因是在本地仓库的每个依赖包都存在_re ...

  10. springboot使用maven打包无法打进本地包解决方法

    springboot使用maven打包无法打进本地包解决方法 参考文章: (1)springboot使用maven打包无法打进本地包解决方法 (2)https://www.cnblogs.com/vi ...

最新文章

  1. ECCV 2020 | 首届GigaVision挑战赛揭榜,双赛道冠军技术干货分享
  2. mysql 5.7_MySQL 5.7新特性介绍
  3. 安装bigsur卡在12分钟_Big Sur为什么安装不了?macOS Big Sur无法完成安装的解决办法!...
  4. 【网络流】Modular Production Line
  5. SAP Spartacus使用到的技术栈
  6. 监督学习与无监督学习的区别_机器学习
  7. mongoDB 小练习
  8. python绘制条形图例题_python matplotlib库绘制条形图练习题
  9. MySQL索引背后的数据结构及算法原理(employees实例)
  10. 网上购物系统(Task100)——业务逻辑层BLL(面向接口的编程模式)
  11. COGS 2507. 零食店
  12. 【积跬步以至千里】唧唧Down下载视频无法正常合并分段文件解决方案
  13. jenkins下载插件慢解决方式
  14. Retrofit源码分析
  15. 【喜讯】PerfMa再获高瓴创投领投1.5亿A++轮融资
  16. 2020年DDCTF-web签到题题解
  17. 字符画——ASCII art
  18. 论文笔记 Dependent Gaussian Processes 相关高斯过程
  19. 零基础学习微信小程序(7):组件
  20. 微信小程序使用高德SDK获取天气

热门文章

  1. [转载]8种防盗链的方法
  2. 【AI应用】NVIDIA Tesla T4的详情参数
  3. 我的十年 Oracle DBA 奋斗路 - 回首向来萧瑟处,也无风雨也无晴
  4. 几种平均数的物理意义应用场景
  5. Docker学习中文文档大全、dockerdocker-compose实战
  6. python求两数最小公倍数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
  7. java使用itext导出pdf,图片、表格、背景图
  8. 算术-几何平均值不等式的常见证明
  9. 微信小程序静态页面的实现
  10. python蜂鸣器_Python与硬件学习笔记:蜂鸣器(转)