Maven build 跟eclipse build有何不同

Maven build的时候,推荐使用clean install -DskipTests,如下面这个命令,因为这个命令会把test包下面的java代码还有配置文件都编译,但是不会运行测试类进行测试。

Maven build 跟eclipse build有何不同_第1张图片


但是如果是下面这种方式,则压根就不会编译test包下面的java源文件以及配置文件,如果要进行手动测试,那么不推荐使用这种方式。

Maven build 跟eclipse build有何不同_第2张图片

标准的Maven项目包层次结构:

-Project

--src/main/java

--src/main/resources

--src/test/java(如果是用-DskipTests,那么也会编译这些测试类,但是如果勾选Skip tests则不会)

--src/test/resources(如果是用-DskipTests,那么也会编译这些资源文件,但是如果勾选Skip tests则不会)

Maven build 跟eclipse build有何不同_第3张图片


有时候我们的项目测试的时候可能依赖其他项目的配置文件,那么我们就需要使用maven build的方式把他们加进来。如下面的示例

这个示例在我们build 代码的时候会执行下面操作,最后一个是把某一个专门存放配置文件的项目(build出来是zip文件)build出来的zip文件解压缩,放到generated-sources 还有generated-test-sources中。generated-test-sources这个是运行测试类会用到的配置文件。


        
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
            

            
                org.apache.maven.plugins
                maven-assembly-plugin
                2.3
                
                    
                        XXXXX-build
                        package
                        
                            single
                        

                        
                            
                                src/main/assembly/XXXXX.xml
                            

                        

                    

                

            

            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        unpack-XXXXXX-resources
                        
                            unpack-dependencies
                        

                        generate-resources
                        
                            ${project.build.directory}/generated-resources
                            ArtifacId
                            GroupId
                            true
                            zip
                            resources
                            provided
                        

                    

                

            

        

    


另外,如果我对于不同的场有很多种不同的配置文件,那么我可以用profile去配置不同场的不同配置文件

在src/main/resources下面创建不同场的不同文件夹

Maven build 跟eclipse build有何不同_第4张图片

那么在pom文件中如何配置呢

    4.0.0
    XXX
    XXX
    XXX
    pom
    ${XXX}

    
            A
            
                A
                A
            

        

        
            B
            
                B
                B
            

        

        
            test_config
            
                test_config
                test_config
            

        
生成的zip文件后面会加上你的profile的名字,比如XXX-5.0.0-02-SNAPSHOT- test_config.zip


下面是另外一个pom配置模板,用于测试的时候,从其他配置文件项目拷贝配置文件过来


        
            test_config    
            
                
                    
                        src/test/resources
                    

                    
                        ${project.build.directory}/generated-test-resources
                    

                

                
                    
                        org.apache.maven.plugins
                        maven-dependency-plugin
                        
                            
                                unpack-test-config
                                
                                    unpack-dependencies
                                

                                generate-test-resources
                                
                                    ${project.build.directory}/generated-test-resources
                                    ArtifacId
                                    GroupId
                                    true
                                    zip
                                    test_config
                                    test
                                

                            

                        

                    

                

            

            这个依赖只属于这个profile
                
                    groupId
                    artifactId
                    test_config
                    zip
                    test
                

            

        

    


下面是关于Skip tests 还有-DskipTests的测试

使用-DskipTests的build 结果,generated-test-resources跟test-classes也会被编译生成

Maven build 跟eclipse build有何不同_第5张图片


勾选Skip tests的运行结果,generated-test-resources跟test-classes不会被编译生成

Maven build 跟eclipse build有何不同_第6张图片



你可能感兴趣的:(Test)