为什么80%的码农都做不了架构师?>>>   

1. 首先看下maven项目的标准目录结构:

2. 看下项目pom.xml的配置,首先要配置maven-jar-plugin,把自己的代码编译打包成jar文件,然后配置maven-assembly-plugin,把整个项目打包成一个发布包。

<build><plugins><!-- The configuration of maven-jar-plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><!-- The configuration of the plugin --><configuration><!-- Configuration of the archiver --><archive><!--生成的jar中,不要包含pom.xml和pom.properties这两个文件--><addMavenDescriptor>false</addMavenDescriptor><!-- Manifest specific configuration --><manifest><!--是否要把第三方jar放到manifest的classpath中--><addClasspath>true</addClasspath><!--生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/--><classpathPrefix>lib/</classpathPrefix><!--应用的main class--><mainClass>dbRobot.BeanRobot</mainClass></manifest></archive><!--过滤掉不希望包含在jar中的文件--><excludes><exclude>${project.basedir}/xml/*</exclude></excludes></configuration></plugin><!-- The configuration of maven-assembly-plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4</version><!-- The configuration of the plugin --><configuration><!-- Specifies the configuration file of the assembly plugin --><descriptors><descriptor>src/main/assembly/package.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins>
</build>

3. 再来看package.xml的配置

<assembly><id>bin</id><!-- 最终打包成一个用于发布的zip文件 --><formats><format>zip</format></formats><!-- Adds dependencies to zip package under lib directory --><dependencySets><dependencySet><!--不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录--><useProjectArtifact>false</useProjectArtifact><outputDirectory>lib</outputDirectory><unpack>false</unpack></dependencySet></dependencySets><fileSets><!-- 把项目相关的说明文件,打包进zip文件的根目录 --><fileSet><directory>${project.basedir}</directory><outputDirectory>/</outputDirectory><includes><include>README*</include><include>LICENSE*</include><include>NOTICE*</include></includes></fileSet><!-- 把项目的配置文件,打包进zip文件的config目录 --><fileSet><directory>${project.basedir}\src\main\config</directory><outputDirectory>config</outputDirectory><includes><include>*.xml</include><include>*.properties</include></includes></fileSet><!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 --><fileSet><directory>${project.build.scriptSourceDirectory}</directory><outputDirectory></outputDirectory><includes><include>startup.*</include></includes></fileSet><!-- 把项目的脚本文件(除了启动脚本文件),打包进zip文件的script目录 --><fileSet><directory>${project.build.scriptSourceDirectory}</directory><outputDirectory></outputDirectory><includes><exclude>startup.*</exclude></includes></fileSet><!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 --><fileSet><directory>${project.build.directory}</directory><outputDirectory></outputDirectory><includes><include>*.jar</include></includes></fileSet></fileSets>
</assembly>

4. 经过jar和assembly,最终得到一个可发布的zip文件,内容结构如下:

转载:http://www.xuehuile.com/blog/f621d27a22e4474fa8a22aaae375fe8c.html

转载于:https://my.oschina.net/chaun/blog/482921

利用MAVEN打包可运行jar包,包括依赖的第三方包相关推荐

  1. java maven jar 打包_使用Maven打包可运行jar和javaagent.jar的区别

    简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码. java1.5 之前使用的是JVMTI(jvm tool interf ...

  2. java包 agent_使用Maven打包可运行jar和javaagent.jar的区别

    简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码. java1.5 之前使用的是JVMTI(jvm tool interf ...

  3. 利用Docker创建镜像运行jar包

    背景:项目是打包成jar包的,想利用docker去管理运行jar包,通过docker的了解可以知道,想运行jar,那么此jar包需要运行在一个有着jdk环境的docker镜像中,以下教程则是创建一个j ...

  4. maven打包导入本地jar包

    一 . 在项目根目录创建lib文件夹,把jar放入lib文件夹中 img 二 . 在项目中使用本地jar pom文件配置如下: <!--导入本地jar--><dependency&g ...

  5. maven 打包时缺少文件_maven父子工程---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到...

    场景: 因为之前用到的是,基于springboot框架所搭建的maven工程,而且都是相互独立的.现研发经理要求将所有工程进行整合和规范化,所以抽出一个parent父工程,base基础模块(包含一些公 ...

  6. Maven打包后运行报错

    Maven打包后运行报错 场景描述 今天在用Maven打包的时候发现打完后的jar包无法正常执行,一开始我以为是依赖问题.结果在摸索中发现有一个技巧可以解决问题. 解决方法 1.先clean 2.然后 ...

  7. maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist

    场景: springboot 项目多模块已成开发大势所趋,抽出一个parent父工程,子模块基础模块(包含一些公用的实体类和工具类等),以及其他子模块(Module A. Module B -).Mo ...

  8. 利用MAVEN打包时,如何包含更多的资源文件

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

  9. Crmeb Java 项目打包可运行jar文件

    Crmeb Java 项目打包可运行jar文件 本地已经运行过的同学直接配置prod环境的yml文件后直接mvn install 打包即可. ⏬下载的源码,并导入开发工具 解压后的代码包内容 源码包基 ...

最新文章

  1. Quartz2.2.1开发问题
  2. 请善用工具审核您的内核代码:)
  3. Java Review - PriorityQueue源码解读
  4. DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字图片识别逐步提高99.6%准确率
  5. Python 十六进制转Base64_python基础day03笔记
  6. 大数据开发上岗基本要求
  7. 更新fielddata为true_线程与更新UI,细谈原理
  8. VMware连续三年获评Gartner广域网边缘基础设施魔力象限领导者
  9. java线程安全定义了什么单例_Java中四种线程安全的单例模式实现方式
  10. Ansible-playbook 拾遗
  11. oracle 游标取字段名称,Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串...
  12. Android进阶--android自动化测试python+uiautomator
  13. Axure RP 10 安装方法
  14. python工程师的职业规划_一名Python开发工程师的职业规划
  15. ora-3136故障处理
  16. 如何测试微信文件传输的这个功能,说出测试点,还有测试类型,以及测试用例
  17. mt4 python神经网络_用Python写MT4自动交易策略来炒外汇
  18. CDK【10元美团外卖通用红包】无门槛红包 2天内兑换 1天内可兑换5次 提示失败隔天兑换
  19. cocos2d 高仿doodle jump 无源代码
  20. centos7 moloch安装及优化

热门文章

  1. probit概率单位回归分析
  2. markdownpad 2 pro版本(注册码)
  3. kafka在zookeeper下的目录结构
  4. 子矩阵(暴搜(全排列)+DP)
  5. Atitit java 二维码识别 图片识别
  6. redmine plugin
  7. JVM 1.类的加载、连接、初始化
  8. .NET设计模式(2):单件模式(Singleton Pattern)
  9. ASP.NET MVC 3 Razor 多国语言参考解决方案 补充四
  10. C# BeginInvoke与EndInvoke的使用