Spring Boot parent 或者 spring-boot-dependencies引入spring boot

两种方式快速创建一个spring boot的MAVEN工程

一、使用标签继承父模块

    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.0.RELEASE
        
    

绝大多数工程都是采用此方法引入spring boot工程的依赖,下面我们就来看下spring-boot-starter-parent到底有什么内容。


    4.0.0
    
        org.springframework.boot
        spring-boot-dependencies
        2.1.0.RELEASE
        ../../spring-boot-dependencies
    
    spring-boot-starter-parent
    pom
    Spring Boot Starter Parent
    Parent pom providing dependency and plugin management for applications
        built with Maven
    https://projects.spring.io/spring-boot/#/spring-boot-starter-parent
    
        UTF-8
        1.8
        @
        ${java.version}
        UTF-8
        ${java.version}
    
    
        
            
                true
                ${basedir}/src/main/resources
                
                    **/application*.yml
                    **/application*.yaml
                    **/application*.properties
                
            
            
                ${basedir}/src/main/resources
                
                    **/application*.yml
                    **/application*.yaml
                    **/application*.properties
                
            
        
        
            
                
                    org.jetbrains.kotlin
                    kotlin-maven-plugin
                    ${kotlin.version}
                    
                        
                            compile
                            compile
                            
                                compile
                            
                        
                        
                            test-compile
                            test-compile
                            
                                test-compile
                            
                        
                    
                    
                        ${java.version}
                        true
                    
                
                
                    maven-compiler-plugin
                    
                        true
                    
                
                
                    maven-failsafe-plugin
                    
                        
                            
                                integration-test
                                verify
                            
                        
                    
                    
                        ${project.build.outputDirectory}
                    
                
                
                    maven-jar-plugin
                    
                        
                            
                                ${start-class}
                                true
                            
                        
                    
                
                
                    maven-war-plugin
                    
                        
                            
                                ${start-class}
                                true
                            
                        
                    
                
                
                    org.codehaus.mojo
                    exec-maven-plugin
                    
                        ${start-class}
                    
                
                
                    maven-resources-plugin
                    
                        
                            ${resource.delimiter}
                        
                        false
                    
                
                
                    pl.project13.maven
                    git-commit-id-plugin
                    
                        
                            
                                revision
                            
                        
                    
                    
                        true
                        yyyy-MM-dd'T'HH:mm:ssZ
                        true
                        ${project.build.outputDirectory}/git.properties
                    
                
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        
                            repackage
                            
                                repackage
                            
                        
                    
                    
                        ${start-class}
                    
                
                
                    maven-shade-plugin
                    
                        
                            package
                            
                                shade
                            
                            
                                
                                    
                                        META-INF/spring.handlers
                                    
                                    
                                        META-INF/spring.factories
                                    
                                    
                                        META-INF/spring.schemas
                                    
                                    
                                    
                                        ${start-class}
                                    
                                
                            
                        
                    
                    
                        
                            org.springframework.boot
                            spring-boot-maven-plugin
                            2.1.0.RELEASE
                        
                    
                    
                        true
                        true
                        
                            
                                *:*
                                
                                    META-INF/*.SF
                                    META-INF/*.DSA
                                    META-INF/*.RSA
                                
                            
                        
                    
                
                
                    org.eclipse.m2e
                    lifecycle-mapping
                    1.0.0
                    
                        
                            
                                
                                    
                                        org.codehaus.mojo
                                        flatten-maven-plugin
                                        [1.0.0,)
                                        
                                            flatten
                                        
                                    
                                    
                                        
                                    
                                
                                
                                    
                                        org.apache.maven.plugins
                                        maven-checkstyle-plugin
                                        [3.0.0,)
                                        
                                            check
                                        
                                    
                                    
                                        
                                    
                                
                            
                        
                    
                
            
        
    

可以看出这个工程又是依赖于spring-boot-dependencies,也就是我们第二种方式引入spring boot所需依赖。

二、直接引入spring-boot-dependencies的pom内容

            
                org.springframework.boot
                spring-boot-dependencies
                2.1.0.RELEASE
                pom
                import
            

这种方式无需继承父模块,可以解决以上第一种单继承的问题。
scope=import,type=pom表示在此pom中引入spring-boot-dependencies的pom的所有内容,注意只能在dependencyManagement中使用。
下面看一下spring-boot-dependencies的内容。


    4.0.0
    org.springframework.boot
    spring-boot-dependencies
    2.1.0.RELEASE
    pom
    Spring Boot Dependencies
    Spring Boot Dependencies
    https://projects.spring.io/spring-boot/#
    
        
            Apache License, Version 2.0
            http://www.apache.org/licenses/LICENSE-2.0
        
    
    
        
            Pivotal
            [email protected]
            Pivotal Software, Inc.
            http://www.spring.io
        
    
    
        https://github.com/spring-projects/spring-boot
    
    
        5.15.7
        2.7.7
        1.9.67
        2.6.3
        1.9.2
        3.11.1
        4.0.6
        2.1.4
        3.0.0
        1.9.3
        2.6.2
        3.6.0
        1.4.0
        1.11
        2.5.0
        3.8.1
        1.6
        2.6.0
        2.1.0
        2.7.0
        10.14.2.0
        1.6.1
        4.0.3
        2.10.6
        3.6.1
        6.4.2
        2.1.1
        1.6.0
        1.0.1
        5.2.1
        2.3.28
        2.2.5
        3.0.0
        2.3.1
        2.5.3
        2.8.5
        1.4.197
        1.3
        3.11
        1.2.3
        5.3.7.Final
        6.0.13.Final
        3.2.0
        2.4.1
        2.33
        4.1.4
        4.5.6
        4.4.10
        9.4.0.Final
        2.14
        2.9.7
        3.0.10
        1.2.0
        1.3.2
        1.1.0
        2.3.1
        2.3.1
        2.0.1
        1.1.3
        1.0
        1.6.2
        1.0.3
        2.2
        1.3
        2.0.1.Final
        1.1
        1.1.6
        3.0.5
        3.3.2.Final
        7.6.0.Final
        2.0.6
        2.9.0
        2.27
        6.3.1
        9.4.12.v20180830
        8.5.33
        2.2.0.v201112011158
        1.0.1
        1.14
        4.5.2
        2.10.1
        ${johnzon-jsonb.version}
        1.1.10
        1.6.0
        3.11.5
        1.5.0
        2.4.0
        1.2
        1.3.1
        4.12
        5.3.1
        2.0.0
        1.2.71
        5.1.2.RELEASE
        3.6.2
        2.11.1
        1.2.3
        1.18.2
        2.3.0
        1.8
        3.1.0
        3.1.0
        3.8.0
        3.1.1
        2.8.2
        3.0.0-M2
        2.22.1
        3.1.0
        2.5.2
        3.1.0
        3.1.0
        3.0.1
        3.1.0
        3.2.0
        3.7.1
        3.0.1
        2.22.1
        3.2.2
        1.1.0
        1.9.10
        2.23.0
        3.8.2
        1.9.2
        6.4.0.jre8
        8.0.13
        1.9.22
        3.1.4
        4.1.29.Final
        2.0.17.Final
        1.1.0
        1.0.3
        42.2.5
        0.5.0
        2.3.0
        4.2.1
        5.4.3
        1.0.2
        Californium-SR2
        3.1.1
        1.3.8
        2.2.3
        1.2.1
        1.5.0
        3.14.0
        2.33.0
        4.3.0
        4.0.1
        1.7.25
        1.23
        7.4.0
        5.1.2.RELEASE
        2.1.0.RELEASE
        4.1.0.RELEASE
        2.0.3.RELEASE
        Lovelace-SR2
        ${spring.version}
        0.25.0.RELEASE
        5.1.0.RELEASE
        2.2.0.RELEASE
        2.3.2.RELEASE
        1.2.0.RELEASE
        2.0.2.RELEASE
        1.2.2.RELEASE
        5.1.1.RELEASE
        Bean-RELEASE
        3.0.4.RELEASE
        3.25.2
        3.1.0
        ${javax-mail.version}
        3.0.11.RELEASE
        2.0.1
        3.0.1.RELEASE
        3.0.4.RELEASE
        2.3.0
        9.0.12
        4.0.8
        2.0.14.Final
        2.7
        3325375
        0.35
        1.6.3
        1.4.01
        1.0.2
        2.6.2
    
    
        
            ......
        
    
    
        
        ......
        
    

可以看出绝大多数我们可能用到的包依赖和插件依赖都已经在spring-boot-dependencies中定义好了,因此我们在使用的时候只需要把我们要用到的依赖引入就可以了,写起来非常的简洁。
另外,两种方式都只需要定义好父模块的版本即可,实际要引用到某个子模块的时候不需要在自己写版本号。

你可能感兴趣的:(Spring Boot parent 或者 spring-boot-dependencies引入spring boot)