资讯专栏INFORMATION COLUMN

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

shengguo / 653人阅读

摘要:打包方式使用打包插件在文件最后新增以下代码。表达式支持通配符打成一个包如果需要将依赖的包都达到一个包中运行,可以使用这个插件。

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

相关文章

  • 超详细,新手都能看懂 !使SpringBoot+Dubbo 搭建一个简单的分布式服务

    Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,欢迎各位 Star。 目录: 使用 SpringBoot+Dubbo 搭建一个简单分布式服务 实战之前,先来看几个重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架构 什么是 RPC? 为什么要用 Dubbo? 开始实战 1 ...

    chengtao1633 评论0 收藏0
  • Maven学习笔记

    摘要:学习笔记先生,您在写代码吗不,我们正在完成一项伟大的工程。于是打算重新学习一下。中央仓库镜像为了分担中央仓库的流量,提升用户的访问速度。生成项目报告,站点,发布站点。修改源码后也需要逐个手动进行操作。 maven学习笔记 先生,您在写代码吗? 不,我们正在完成一项伟大的工程。 前言 在刚学maven时,我就把maven当作一个引入jar包的工具而已,以前是自己下载jar包,现在是只用...

    tomlingtm 评论0 收藏0
  • spring boot 配合maven打成可执行jar,构建镜像部署到docker容器中

    摘要:本篇文章将介绍应用如何打成包并将构建为镜像部署到中应用打包需要配合打包将以下代码放到应用文件中执行打打包命令命令执行完成后在应用目录下会有打出来打包此包会包含应用所有打依赖直接拷出这个包在命令行执行应用名就可以运行了构建镜像 本篇文章将介绍springboot应用如何打成jar包,并将jar构建为docker镜像部署到docker中 应用打包 需要配合spring-boot-mave...

    y1chuan 评论0 收藏0
  • Spring Boot 打成的可执行 jar ,为什么不能被其他项目依赖?

    摘要:从这里我们就可以看出,两个,虽然都是包,但是内部结构是完全不同的,因此一个可以直接执行,另一个则可以被其他项目依赖。一次打包两个一般来说,直接打包成可执行就可以了,不建议将作为普通的被其他的项目所依赖。 前两天被人问到这样一个问题: 松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误? 大伙有这样的疑问,就是因为还没搞清楚可执行...

    Ali_ 评论0 收藏0
  • Maven多模块项目搭建+整合SSM框架

    摘要:继承作用就是避免配置重复,对于子项目来说应该关心父项目是怎么样配置的。聚合字面理解就是聚在一起合作完成工作,就是将子模块聚集起来完成相应的项目需求父工程的搭建项目结构在父工程中,主要负责完成依赖的版本管理,并不是实际的依赖。 从大二开始就一直关注segmentFault,在问题专区帮忙回答一些自己知晓的问题;在写这篇文章之前我一直会在朋友圈发一些自己遇到的问题以及解决办法,这是第一次写...

    liaosilzu2007 评论0 收藏0

发表评论

0条评论

shengguo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<