maven资源文件的相关配置,及环境参数动态打包

 

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

 

src/main/java和src/test/java 

这两个目录中的所有*.java文件会分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。

 

src/main/resouces和src/test/resources

这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。

 

target/classes

打包插件默认会把这个目录中的所有内容打入到jar包或者war包中。

 

 

Maven项目的标准目录结构

  • src
    • main
      • java         源文件 
      • resources    资源文件
      • filters   资源过滤文件
      • config   配置文件
      • scripts   脚本文件
      • webapp   web应用文件
    • test
      • java    测试源文件
      • resources    测试资源文件
      • filters    测试资源过滤文件
    • it       集成测试
    • assembly    assembly descriptors
    • site    Site
  • target
    • generated-sources
    • classes
    • generated-test-sources
    • test-classes
    • xxx.jar
  • pom.xml
  • LICENSE.txt
  • NOTICE.txt
  • README.txt

 

资源文件的配置

资源文件是Java代码中要使用的文件。代码在执行的时候会到指定位置去查找这些文件。前面已经说了Maven默认的处理方式,但是有时候我们需要进行自定义的配置。

有时候有些配置文件通常与.java文件一起放在src/main/java目录(如mybatis或hibernate的表映射文件)。有的时候还希望把其他目录中的资源也复制到classes目录中。这些情况下就需要在Pom.xml文件中修改配置了。

可以有两种方法:

  • 一是在元素下添加进行配置。
  • 另一种是在子元素中配置maven-resources-plugin等处理资源文件的插件。

 

配置resouces节点

复制代码
复制代码
  
    .......
      
        
            src/main/resources
            
                **/*.properties
                **/*.xml
             
            false
        
        
            src/main/java
            
                **/*.properties
                **/*.xml
            
            false
        
    
    ......
复制代码
复制代码

 

配置资源处理插件

复制代码
复制代码
       
            maven-resources-plugin
            2.5
            
                
                    copy-xmls
                    process-sources
                    
                        copy-resources
                    
                    
                        ${basedir}/target/classes
                        
                            
                                ${basedir}/src/main/java
                                
                                    **/*.xml
                                
                            
                        
                    
                
            
        
复制代码
复制代码

 

另一个插件也能完成相同的功能

复制代码
复制代码
        
            org.codehaus.mojo
            build-helper-maven-plugin
            1.8
            
                
                    add-resource
                    generate-resources
                    
                        add-resource
                    
                    
                        
                            
                                src/main/java
                                
                                    **/*.xml
                                
                            
                        
                    
                
            
         
复制代码
复制代码

 

 

打包时文件相关的配置

打包时target/classes目录中的资源文件会和class字节码一起被打进jar包或war包中。有时候默认的情况不能完全满足需求,如target/classes目录中的一些文件不希望打入jar包中,就需要额外配置maven-jar-plugin插件。

复制代码
复制代码
       
                org.apache.maven.plugins
                maven-jar-plugin
                2.4
                
                    
                        *.properties
                    
                    
                        
                            true
                            xxxxxx.ConsoleLauncher
                        
                    
                
            
复制代码
复制代码

 

转:http://www.cnblogs.com/pixy/p/4798089.html

 

 

 在项目的profile中添加如下的profile配置:

复制代码

    
        
        dev
        
            dev
        
        
            
            true
        
    
    
        
        release
        
            release
        
    
    
        
        beta
        
            beta
        
    
 
复制代码

  这里定义了三个环境,分别是dev(开发环境)、beta(测试环境)、release(发布环境),其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境,也在package的时候显示指定你要选择哪个开发环境,详情见后面。

 

激活profile

1)默认的激活

  上面的profile配置中设置的默认的激活环境。如下面所示

true 

2)使用-P参数显示激活一个profile

  当我们在进行Maven操作时就可以使用-P参数显示的指定当前激活的是哪一个profile了。比如我们需要在对项目进行打包的时候使用id为dev的profile,我们就可以这样做:

mvn package –Pdev

   这里假设dev是在settings.xml中使用dev标记的处于激活状态的profile,那么当我们使用“-P !profile”的时候就表示在当前操作中该profile将不处于激活状态。

转载于:https://www.cnblogs.com/atwanli/articles/8431416.html

你可能感兴趣的:(maven资源文件的相关配置,及环境参数动态打包)