分析spring-boot-starter-parent.xml

spring-boot-starter-parent.xml完整代码如下:


4.0.0
 
     org.springframework.boot
    spring-boot-dependencies
    2.3.3.RELEASE
 

  spring-boot-starter-parent
  pom
  spring-boot-starter-parent
 Parent pom providing dependency and plugin management for applications built with Maven
 
    1.8
    @
    ${java.version}
    ${java.version}
    UTF-8
    UTF-8
 

  https://spring.io/projects/spring-boot
 
   
      Apache License, Version 2.0
      https://www.apache.org/licenses/LICENSE-2.0
   

 

 
   
      Pivotal
      [email protected]
      Pivotal Software, Inc.
      https://www.spring.io
   

 

 
    https://github.com/spring-projects/spring-boot
 

 
   
     
        ${basedir}/src/main/resources
        true
       
          **/application*.yml
          **/application*.yaml
          **/application*.properties
       

     

     
        ${basedir}/src/main/resources
       
          **/application*.yml
          **/application*.yaml
          **/application*.properties
       

     

   

   
     
       
          org.jetbrains.kotlin
          kotlin-maven-plugin
          ${kotlin.version}
         
            ${java.version}
            true
         

         
           
              compile
              compile
             
                compile
             

           

           
              test-compile
              test-compile
             
                test-compile
             

           

         

       

       
          org.apache.maven.plugins
          maven-compiler-plugin
         
            true
         

       

       
          org.apache.maven.plugins
          maven-failsafe-plugin
         
           
             
                integration-test
                verify
             

           

         

         
            ${project.build.outputDirectory}
         

       

       
          org.apache.maven.plugins
          maven-jar-plugin
         
           
             
                ${start-class}
                true
             

           

         

       

       
          org.apache.maven.plugins
          maven-war-plugin
         
           
             
               ${start-class}
               true
             

           

         

       

       
          org.apache.maven.plugins
          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}
         

       

       
          org.apache.maven.plugins
          maven-shade-plugin
         
            true
            true
           
             
                *:*
               
                  META-INF/*.SF
                  META-INF/*.DSA
                  META-INF/*.RSA
               

             

           

         

         
           
              org.springframework.boot
              spring-boot-maven-plugin
              2.3.3.RELEASE
           

         

         
           
              package
             
                shade
             

             
               
                 
                    META-INF/spring.handlers
                 

                 
                    META-INF/spring.factories
                 

                 
                    META-INF/spring.schemas
                 

                 
                 
                    ${start-class}
                 

               

             

           

         

       

     

   

 

filter 符号设置,传统的${}被替换成@,运行maven process-resources在process-resources阶段将相应的值填入到配置文件中。


 org.apache.maven.plugins
 maven-resources-plugin
 
 
  ${resource.delimiter}
 

  false
 

filter application resource, 这段代码将在process-resources替换配置中的变量.


        ${basedir}/src/main/resources
        true
       
          **/application*.yml
          **/application*.yaml
          **/application*.properties
       

compile, 编译代码,查找有关scope=compile的dependency
Requires a Maven project to be executed.
Requires dependency resolution of artifacts in scope:compile.
Since version:2.0.
Binds by default to the lifecycle phase:compile.


  org.apache.maven.plugins
  maven-compiler-plugin
 
    true
 

integration test, 集成测试插件, 
1. pre-integration-test 启动测试环境,比如通过容器插件cargo启动容器,加载应用
2. integration-test 执行集成测试用例,
3. post-integration-test 清理测试环境
4. verify 检测测试结果


  org.apache.maven.plugins
  maven-failsafe-plugin
 
   
     
        integration-test
        verify
     

   

 

 
    ${project.build.outputDirectory}
 

package jar&war插件,这些插件将在maven install/package中执行


  org.apache.maven.plugins
  maven-jar-plugin
 
   
     
        ${start-class}
        true
     

   

 



  org.apache.maven.plugins
  maven-war-plugin
 
   
     
        ${start-class}
        true
     

   

 

spring-boot-maven-plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。


  org.springframework.boot
  spring-boot-maven-plugin
 
   
      repackage
     
        repackage
     

   

 

 
    ${start-class}
 

maven-shade-plugin
将依赖的jar包打包到当前jar包(常规打包是不会将所依赖jar包打进来的);
对依赖的jar包进行重命名(用于类的隔离);


  org.apache.maven.plugins
  maven-shade-plugin
 
    true
    true
   
     
        *:*
       
          META-INF/*.SF
          META-INF/*.DSA
          META-INF/*.RSA
       

     

   

 

 
   
      org.springframework.boot
      spring-boot-maven-plugin
      2.3.3.RELEASE
   

 

 
   
      package
     
        shade
     

     
       
         
            META-INF/spring.handlers
         

         
            META-INF/spring.factories
         

         
            META-INF/spring.schemas
         

         
         
            ${start-class}
         

       

     

   

 

你可能感兴趣的:(分析spring-boot-starter-parent.xml)