Maven将依赖多jar的项目打成一个可执行jar

利用maven的assembly插件或者shade插件可实现将依赖多个jar包的项目打成一个jar大jar包。
1、将项目依赖的多个jar打入maven仓库中,例如
mvn install:install-file -DgroupId=com.bank -DartifactId=UnionNew -Dversion=1.0.0 -Dpackaging=jar -Dfile=d:/UnionNew.jar
注意,如果在pom依赖指定的jar包本地地址,编译是没问题,但生产的jar依旧是需要配合依赖的,也就是依赖的jar还需要和生成的jar放一起。


    lib.kuppext
    UnionNewx
    1.0
    system
    ${basedir}/lib/bcprov-jdk14-119.jar

取消上述引用,将jar打入仓库后用下面的依赖:


    com.bank
    UnionNew
    1.0.0

补充:若使用显示依赖,即使用前一种指定依赖方式,不将jar打入maven仓库,则需要配置assembly插件属性才能有相同效果:


   
      /lib
   

2、配置maven及代码工具jak及编码格式,指定maven的插件编译jdk版本和java代码编译版本,IDEA设置如下

以及pom指定如下:


    1.7
    UTF-8


*******所需依赖******

注意保持IDEA设置的项目jdk和编码类型与此处保持一致,以避免其它错误。
3、设置assembly插件属性,以及其他plugin配置,进入项目根目录后,执行mvn clean及mvn package及生成最终jar文件。
pom.xml示例如下:



    4.0.0

    szkingdom.kupp.tools
    kupp-tool-cmbcthird
    1.0.0
    KUPP :: Adapter Plungin Module :: CMBCThird
    jar
    
        1.7
        UTF-8
    
    
        
            com.bank
            baprov
            1.0.0
        
        
            com.bank
            UnionNew
            1.0.0
        
        
            
            
            
            
            
            
            
        
        
            
            
            
            
            
        
    

    
        
            ${project.artifactId}-${project.version}
        
        
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.4.3
                
                    UTF-8
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    UTF-8
                
            
            
                maven-assembly-plugin
                
                    
                        jar-with-dependencies
                    
                    
                        
                            com.szkingdom.kupp.tools.cmbcthird.CMBCEncFile
                        
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            
        
    


 

你可能感兴趣的:(工具及技巧)