摘要:打包方式使用打包插件在文件最后新增以下代码。表达式支持通配符打成一个包如果需要将依赖的包都达到一个包中运行,可以使用这个插件。
maven打包方式
使用maven打包插件maven-jar-plugin
在pom.xml文件最后新增以下代码。
maven-dependency-plugin是指将依赖的jar包复制到指定目录
maven-resources-plugin将依赖的resources复制到指定目录
org.apache.maven.plugins maven-jar-plugin 2.6 true lib/ com.alibaba.dubbo.container.Main ${project.build.directory}/maven-archiver *.* config/* config/tencent/* META-INF/spring/* org.apache.maven.plugins maven-dependency-plugin 2.8 copy-dependencies package copy-dependencies ${project.build.directory}/maven-archiver/lib maven-resources-plugin copy-resources package copy-resources ${project.build.directory}/maven-archiver/resources ${basedir}/src/main/resources true
运行jar包方式
打包之后的目录结构
包含了class文件,以及需要的配置文件信息(不包含excludes的配置文件)
在MANIFEST.MF中包含了运行需要的信息
Class-Path: lib/commons-beanutils-1.8.3.jar lib/commons-betwixt-0.8.jar ... Main-Class: com.alibaba.dubbo.container.Main
java -jar
启动命令
java -jar 执行命令时,会用到目录META-INFMANIFEST.MF中Main-Class的参数,这个是在打包的时候指定函数的入口。
java -jar x-0.0.1-SNAPSHOT.jar
java -cp
启动命令
java -cp .:x-0.0.1-SNAPSHOT.jar packname.mainclassname
因为我工程中需要引用外部的resources文件所以我通常用这种方式启动
配置文件地址是绝对路径
java -cp /Users/username/resources:dubbo-service-1.0.jar com.alibaba.dubbo.container.Main
-cp和-classpath是相同的效果
java -cp 是指定运行所依赖其他类的路径,通常是类库、jar 包之类,多个依赖在Window 上用分号";"隔开,linux上用":"隔开。
表达式支持通配符
java -cp .:/Users/username/*.jar packname.mainclassname
打成一个jar包
如果需要将依赖的jar包都达到一个jar包中运行,可以使用maven-shade-plugin这个插件。
这个插件的功能主要是:将依赖的jar包打包到当前jar包,并且在打包的时候把类重命名,可以解决jar包的多版本冲突,具体可以查询官方插件文档。
参考文档
maven官方插件文档
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74353.html
Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,欢迎各位 Star。 目录: 使用 SpringBoot+Dubbo 搭建一个简单分布式服务 实战之前,先来看几个重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架构 什么是 RPC? 为什么要用 Dubbo? 开始实战 1 ...
摘要:本篇文章将介绍应用如何打成包并将构建为镜像部署到中应用打包需要配合打包将以下代码放到应用文件中执行打打包命令命令执行完成后在应用目录下会有打出来打包此包会包含应用所有打依赖直接拷出这个包在命令行执行应用名就可以运行了构建镜像 本篇文章将介绍springboot应用如何打成jar包,并将jar构建为docker镜像部署到docker中 应用打包 需要配合spring-boot-mave...
摘要:从这里我们就可以看出,两个,虽然都是包,但是内部结构是完全不同的,因此一个可以直接执行,另一个则可以被其他项目依赖。一次打包两个一般来说,直接打包成可执行就可以了,不建议将作为普通的被其他的项目所依赖。 前两天被人问到这样一个问题: 松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误? 大伙有这样的疑问,就是因为还没搞清楚可执行...
摘要:继承作用就是避免配置重复,对于子项目来说应该关心父项目是怎么样配置的。聚合字面理解就是聚在一起合作完成工作,就是将子模块聚集起来完成相应的项目需求父工程的搭建项目结构在父工程中,主要负责完成依赖的版本管理,并不是实际的依赖。 从大二开始就一直关注segmentFault,在问题专区帮忙回答一些自己知晓的问题;在写这篇文章之前我一直会在朋友圈发一些自己遇到的问题以及解决办法,这是第一次写...
阅读 1848·2021-11-25 09:43
阅读 1490·2021-09-02 15:21
阅读 3452·2019-08-30 15:52
阅读 1500·2019-08-30 12:48
阅读 1294·2019-08-30 10:57
阅读 2928·2019-08-26 17:41
阅读 680·2019-08-26 11:59
阅读 1365·2019-08-26 10:41