SpringBoot中maven的parent标签的来源与详解

1、基本使用
场景一:有两个项目A、B、C,都依赖同一个jar包:lombok.jar。

若分别在各自的项目中引入lombok.jar的依赖,那么当lombok.jar的版本发生变化时,三个项目pom文件的都需要改。

此时就可以使用parent标签。首先先创建一个parent项目,打包类型为pom,parent项目中没有任何代码,只是管理多个项目之间的公共的依赖。在parent项目的pom文件中定义对lombok.jar的依赖,A、B、C三个子项目只需要定义

父项目:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.7.RELEASE
    
    com.cn.jettech
    jettopro
    1.0-SNAPSHOT
    pom

    
    
        
            org.projectlombok
            lombok
            1.16.16
        
    
    
    
        
            
                org.springframework
                spring-webmvc
                4.3.9.RELEASE
            
        
    

子项目:relativePath 是父项目的pom所在位置。在jettopro-image项目的pom中引入parent项目也就是jettopro,此时会自动加载jettopro父项目中的的lombok.jar包,而中的为可选包,不会在jettopro-image项目中导入,除非自己在jettopro-image项目中导入同时导入不需要写版本号



    4.0.0
    
        com.cn.jettech
        jettopro
        1.0-SNAPSHOT
        
    
    com.cn.jettech
    jettopro-image
    0.0.1-SNAPSHOT
    jettopro-image
    Demo project for Spring Boot


注意子项目不用写。lombok.jar 在父和子都会下载

SpringBoot中maven的parent标签的来源与详解_第1张图片

场景二:有一个springweb.jar,A、B需要依赖,C不需要依赖。

如果A、B分别引入依赖,当版本变化时修改时不方便。此时就需要在parent项目的pom文件中使用 

父项目:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.7.RELEASE
    
    com.cn.jettech
    jettopro
    1.0-SNAPSHOT
    pom

    
    
        
            org.projectlombok
            lombok
            1.16.16
        
    
    
    
        
            
                org.springframework
                spring-webmvc
                4.3.9.RELEASE
            
        
    

使用这个标签可以将spring-webmvc.jar管理起来,如果那个子项目需要用,那么那个子项目在自己的pom文件中使用,此时子项目不是强制使用spring-webmvc.jar,需要的时候使用。

子项目的pom文件:



    4.0.0
    
        com.cn.jettech
        jettopro
        1.0-SNAPSHOT
        
    
    com.cn.jettech
    jettopro-image
    0.0.1-SNAPSHOT
    jettopro-image
    Demo project for Spring Boot

    
        
            org.springframework
            spring-webmvc
            4.3.9.RELEASE
        
    

效果图 

SpringBoot中maven的parent标签的来源与详解_第2张图片

   
      
      
       
       
       
       
       
       
       
       
   
      
    4.0.0   
       
    asia.banseon   
       
    banseon-maven2   
       
    jar   
       
    1.0-SNAPSHOT   
       
    banseon-maven   
       
    http://www.baidu.com/banseon   
       
    A maven project to study maven.   
      
   
    
      
   
    
      
        
        jira   
          
        http://jira.baidu.com/banseon   
       
      
   
    
    
    
    
    
    
     
     
      
      
      
      
      
      
      
      
      
      
      
    
Demo [email protected] [email protected] [email protected] http:/hi.baidu.com/banseon/demo/dev/ HELLO WORLD banseon [email protected] Project Manager Architect demo http://hi.baidu.com/banseon No -5 Apache 2 http://www.baidu.com/banseon/LICENSE-2.0.txt repo A business-friendly OSS license scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk) scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk http://svn.baidu.com/banseon demo http://www.baidu.com/banseon ...... ...... Windows XP Windows x86 5.1.2600 mavenVersion 2.0.3 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ ...... ...... ...... ...... ...... ...... banseon-repository-proxy banseon-repository-proxy http://192.168.1.169:9999/repository/ default ...... org.apache.maven maven-artifact 3.8.1 jar test spring-core org.springframework true ...... banseon-maven2 banseon maven2 file://${basedir}/target/deploy banseon-maven2 Banseon-maven2 Snapshot Repository scp://svn.baidu.com/banseon:/usr/local/maven-snapshot banseon-site business api website scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web

你可能感兴趣的:(spring,boot,maven,后端)