maven的插件

我们看别人代码的时候,看到build的plugins写一大堆,我也不晓得干嘛的,我也不敢问。不写这些,感觉也没大事情

现在想来,还是搞明白的好

1、maven-compiler-plugin

官方文档
https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html

这个插件的目的是指定编译器


    
    org.apache.maven.plugins
    maven-compiler-plugin
    3.1
    
                            
        1.8 
        1.8 
        UTF-8
        true
        true
        true
        true
        
        1.3
        128m
        512m
        -verbose -bootclasspath ${java.home}\lib\rt.jar
    


正常情况下,大家开发环境和编译环境的编译器一致的话,貌似也不需要配置这个

2、spring-boot-maven-plugin

我们需要一个胖jar
我接手了一个项目,打的包只有700k,依赖包很多,每次发布,公司的校验平台会吧一些漏洞的jar报警,这时候需要升级这些jar,每次都有很多,一个个拷贝到测试环境堡垒机里面的时候,我真的和吃屎一样,然后又要拷贝到生产环境堡垒机,感觉又吃了一遍


    ${project.artifactId}
    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    




    ${project.artifactId}
    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                    
                        repackage
                    
                
            
        
    




3、 maven-surefire-plugin

3.1、介绍和跳过

Maven本身并不是一个单元测试框架,它只是在构建时通过maven-surefire-plugin插件来执行JUnit或者TestNG的测试用例。也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4 ,Junit 5以及TestNG
我们可以跳过,当然idea里面也可以指定跳过。

  
    org.apache.maven.plugin  
    maven-compiler-plugin  
    2.1  
      
        true  
      
  
  
    org.apache.maven.plugins  
    maven-surefire-plugin  
    2.5  
      
        true  
      
 

真的猛士敢于面对测试!
跳过不是我们的风格,我们不但不跳过,还特么生成测试报告和覆盖率报告呢

3.2、默认路径和排除

这个插件会自动扫描(默认为src/test/java/)

**/Test*.java:任何子目录下所有命名以Test开关的Java类。
**/*Test.java:任何子目录下所有命名以Test结尾的Java类。
**/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类。

接手的项目,总有奇思妙想的命名,我们必须能引入/排除

  
    org.apache.maven.plugins  
    maven-surefire-plugin  
    2.5  
      
          
            **/*Tests.java 
             **/*JUnit.java 
          
          
            **/*ServiceTest.java  
            **/TempDaoTest.java  
          
      
  

3.3、测试报告

默认情况下,maven-surefire-plugin会在项目的target/surefire-reports目录下生成两种格式的错误报告。
简单文本格式——内容十分简单,可以看出哪个测试项出错。
与JUnit兼容的XML格式

这玩意儿得搭配jacoco,jmockdata等等一起玩耍

4、maven-dependency-plugin

这是处理jar包依赖的插件
当jar包出现漏洞报警的时候,因为依赖的太复杂,需要打印出来
mvn dependency:tree、mvn dependency:analyze

我就习惯

mvn dependency:tree >tree.txt

这样就可以得到一个文件,可以分析了

如果无法得到胖jar的时候,我们可以用copy命令把依赖包考到一个文件夹下

         
            org.apache.maven.plugins  
            maven-dependency-plugin  
            2.8  
              
                  
                    package  
                      
                        copy   
                      
                  
              
        


包含级别

compile 
test
这2个只能有一个

org.apache.camel  
camel-spring
还能指定group或者artifact

  
    org.apache.maven.plugins  
    maven-dependency-plugin  
    2.8  
      
          
            package  
              
                copy-dependencies  
              
          
      
      
        compile  
      
  

还可以从别的地方考到本项目里面

        
            org.apache.maven.plugins
            maven-dependency-plugin
            2.8
            
                
                    package
                    
                        unpack
                    
                    
                        
                            
                                org.slf4j
                                slf4j-log4j12
                                1.7.7
                            
                            
                                junit
                                junit
                                4.11
                                ${project.build.directory}/libs
                            
                        
                        lib
                    
                
            
        

junit要装逼拷到libs下,如果自己不加outputDirectory,会沿用外面的outputDirectory拷到lib下

你可能感兴趣的:(springboot学习,maven,junit,intellij-idea)