详解用maven将dubbo工程打成jar包运行

网友投稿 375 2023-01-07


详解用maven将dubbo工程打成jar包运行

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

http://

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

lXVVcyQAX 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官方插件文档


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微服务网关与nginx(微服务的网关)
下一篇:微服务网关与esb区别(esb 网关)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~