用Maven构建 Fat JAR

Maven可以将你的Java项目构建成一个Fat JAR。 Fat JAR是一个单个JAR文件,其中包含项目中所有已编译的Java类以及项目所依赖的所有JAR文件。

当你需要构建可执行的JAR文件时,Fat JAR会很方便。如:微服务。你可以将你的微服务及其所有依赖项打包到一个JAR文件中。这使执行变得更加容易,因为你不必在类路径中列出微服务所依赖的所有JAR文件,这简化了启动微服务的命令。

如果你需要将应用程序打包在Docker容器中,Fat JAR也很方便。无需将应用程序依赖的每个JAR文件添加到Docker容器,只需添加应用程序的Fat JAR,并且使Dockerfile与应用程序使用的外部依赖项(JAR文件)无关。

 

1.Fat JAR POM配置

为了使用Maven从项目中构建Fat JAR,必须在项目的POM文件中包含Fat JAR构建配置。

通过将maven-assembly-plugin包含在POM文件的plugin部分中,可以配置Maven从项目中构建Fat JAR。


    my-project-name
    

        

        
            org.apache.maven.plugins
            maven-assembly-plugin
            3.1.1

            
                
                    jar-with-dependencies
                
            

            
                
                    make-assembly
                    package
                    
                        single
                    
                
            

        
    

 

configuration XML元素内的maven-assembly-plugin包含一个descriptorRef,它告诉Maven应构建哪种类型的程序集。 jar-with-dependencies值告诉Maven构建具有依赖关系的JAR文件,这其实是Fat JAR的另一个术语。

executions XML元素告诉Maven该Maven插件应在哪个阶段和目标期间执行。 这个maven-assembly-plugin指定在打包阶段执行。

 

2.使用Maven命令来构建Fat JAR

构建Fat JAR的Maven命令:

mvn clean package

 

当使用前面显示的maven-assembly-plugin配置执行Maven package阶段时,Maven将在target目录中输出Fat JAR,Maven将其所有其他构建(例如,编译的类,生成的JavaDocs等)都输出到该目录中。 Fat JAR的命名如下:

my-project-name-jar-with-dependencies.jar

 

上述Fat JAR文件名中my-project-name是示例中的build XML元素中最上面finalName XML元素的值。

其它选择参考文档: http://maven.apache.org/plugins/maven-assembly-plugin/

 

3.完整POM文件Fat JAR配置

这是Fat JAR配置的完整Maven POM文件:


    4.0.0

    com.jenkov.myprojectname
    my-project-name
    1.1.0
    jar

    My Project Name

    
    
        

    

    
        my-project-name
        

            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.6.1
                
                    1.8
                    1.8
                
            

            
                org.apache.maven.plugins
                maven-assembly-plugin
                3.1.1

                
                    
                        jar-with-dependencies
                    
                

                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
    
            
        
    
    


原文地址: https://www.zhblog.net/go/java/tutorial/maven-build-fat-jar?t=633

 

 

 

 

 

你可能感兴趣的:(java,maven,fat,jar)