maven filter/profile

maven 命令:clean package -Dmaven.test.skip=true -P deta

1.命令很简单是:清class文件,打包构建,跳过测试,注意最后一个 -P product,-P maven 会激活项目下的pom.xml配置的标签下id为deta


    
      
      dev
      
        dev
      
      
        
        true
      
    
    
      
      release
      
        release
      
    
    
      
      beta
      
        beta
      
    
  

2.使用占位符上面配置定义的${profiles.active}进行资源过滤


    
      
        src/main/resources
        true
        
          **/*.yml
          **/*.yaml
          **/*.properties
          **/*.xml
        
      
      
        src/main/resources
        false
        
          **/*.pdf
          **/*.txt
        
      
    
    
      src/main/resources/config/${profiles.active}/log-profile.properties
    

需要自定义配置filter插件的分隔符${}。否则默认会使用@作为分隔符。


        org.apache.maven.plugins
        maven-resources-plugin
        2.6
        
          UTF-8
          
            ${*}
          
          false
        
        

总结
激活profile其实就是激活标签的id,给properties的属性赋值。
通过filters标签的源文件,对sources 的 input文件集进行内容替换。
注意:需要自定义分隔符。

整个pom配置参考




  4.0.0

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

  com.aibi
  springboot-demo
  1.0-SNAPSHOT
  springboot-demo

  
    UTF-8
    1.8
    1.8
  

  
    
      org.springframework.boot
      spring-boot-starter-web
    

    
      org.springframework.boot
      spring-boot-starter-test
      test
    






  

  
    
      
      dev
      
        dev
      
      
        
        true
      
    
    
      
      release
      
        release
      
    
    
      
      beta
      
        beta
      
    
  


  
    
      
        src/main/resources
        true
        
          **/*.yml
          **/*.yaml
          **/*.properties
          **/*.xml
        
      
      
        src/main/resources
        false
        
          **/*.pdf
          **/*.txt
        
      
    
    
      src/main/resources/config/${profiles.active}/log-profile.properties
    
    
      
        

        
        org.apache.maven.plugins
        maven-resources-plugin
        2.6
        
          UTF-8
          
            ${*}
          
          false
        
        

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


总结

只替换,不重新编译技巧
最后,排查中还有一个小技巧,不要用mvn install或者mvn package这种操作来重新运行,因为会很慢很耗时,直接用mvn clean resources:resources就可以了,它只复制&替换配置目录下的文件,非常地快

参考资料
https://blog.csdn.net/haiyuntai/article/details/53260191

https://blog.csdn.net/weixin_34259232/article/details/91757071

你可能感兴趣的:(maven filter/profile)