maven-profile

  

<强>概要文件的目的是什么?
在我们实际的开发过程中会有开发,测试,产品等环境,或则不同的操作操作系统。而它们可能需要的配置参数是不一样的,比如:数据库。通常的做法就是在切换环境的同时修改我们的代码或则同一个属性文件。基于此,maven2.0给开发提供了一个更好的选择,档案就是用于不同环境构建不同的项目。

  

<强>概要文件可以配置的地方有哪些?

  
      <李>项目中的pom.xml李   <李>系统用户中设定的maven: % USER_HOME %/.m2 settings.xml李   <李>全局的maven设置:($ {maven.home}/conf/settings.xml)   <李>位于项目basedir中的概要文件描述符:(profiles.xml)   
  

<强>概要配置不同的地方的作用是什么?
本质上分为两类:一种是maven,作用于所有的项目,通常是将不影响项目构建的配置放在此类文件中。如:& lt; repositories> & lt; pluginRepositories> & lt; properties>(可以通过通配符被pom中属性属性引用)。另一种则是砰的一声。xml,作用于单个项目或其子模块,通常是将影响项目构建的参数配置在pom.xml中配置文件中,如:& lt; resources> & lt; properites>。

  

<强>概要的激活方式?

  
      <李> mvn命令行- p,如:
    mvn groupId: artifactId:目标- p profile-1 profile-2李   <李> settings.xml中的& lt; activeProfiles>标签,如:   
     <代码>
      & lt; settings>
      …
      & lt; activeProfiles>
      & lt; activeProfile> profile-1
      & lt;/activeProfiles>
      …
      & lt;/settings>  
      
  
 <代码> *根据JDK环境(自动检测),如: 
  

& lt; profiles>
& lt; profile>
& lt; activation>
& lt; jdk> 1.4 & lt;/jdk>
& lt;/activation>
,
& lt;/profile>
& lt;/profiles>

  
 <代码> *根据操作系统,如: 
  

& lt; profiles>
& lt; profile>
& lt; activation>
& lt; os>
& lt; name> Windows XP
& lt; family> Windows
& lt; arch> x86
& lt; version> 5.1.2600
& lt;/os>
& lt;/activation>
,
& lt;/profile>
& lt;/profiles>

  
 <代码> *根据& lt; activation>中的& lt; property>,并同时来命令行中指定参数:mvn groupId: artifactId:目标-Ddebug=false。如: 
  

& lt; profiles>
& lt; profile>
& lt; activation>
& lt; property>
& lt; name> debug
& lt;/property>
& lt;/activation>
,
& lt;/profile>
& lt;/profiles>

  
 <代码> *根据& lt; activation>中的& lt; activeByDefault>自动激活,如: 
  

& lt; profiles>
& lt; profile>
& lt; id> profile-1
& lt; activation>
& lt; activeByDefault> true
& lt;/activation>
,
& lt;/profile>
& lt;/profiles>

  
 <代码> *根据& lt; activation>中的& lt; file>, & lt; exists>和& lt; missing>如: 
  

& lt; profiles>
& lt; profile>
& lt; activation>
& lt; file>
& lt; missing>目标/生成的源代码/axistools/wsdl2java/org/apache/maven
& lt;/file>
& lt;/activation>
,
& lt;/profile>
& lt;/profiles>

  
 <代码>
  
  * * pom.xml中的概要能修改哪些内容? * *
  
  * & lt; repositories>
  * & lt; pluginRepositories>
  * & lt; dependencies>
  * & lt; plugins>
  * & lt; properties>(不是主要POM的实际可用,但在幕后使用)
  * & lt; modules>
  * & lt; reporting>
  * & lt; dependencyManagement>
  * & lt; distributionManagement>
  * & lt的一个子集,build>元素,它包括:
  * & lt; defaultGoal>
  * & lt; resources>
  * & lt; testResources>
  * & lt; finalName>
  
  * *如何查看哪些资料是生效的? * *
  mvn帮助:活跃会员
  mvn帮助:有效概况- p appserverConfig-dev
  mvn帮助:活跃会员-Denv=dev
  
  参考文档:http://maven.apache.org/guides/introduction/introduction-to-profiles.html  

maven-profile