maven-profile-创新互联

profile的目的是什么?
在我们实际的开发过程中会有dev、test、product等环境,或则不同的操作OS。而它们可能需要的配置参数是不一样的,比如:数据库。通常的做法就是在切换环境的同时修改我们的代码或则同一个properties文件。基于此,maven2.0给开发提供了一个更好的选择,profiles就是用于不同环境构建不同的project.

成都创新互联主要业务有网站营销策划、成都网站设计、做网站、成都外贸网站建设公司、微信公众号开发、微信小程序定制开发、HTML5建站、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都全网营销资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

profile可以配置的地方有哪些?

  • 项目中的pom.xml
  • 系统用户中的maven setting:%USER_HOME%/.m2/settings.xml
  • 全局的maven setting:(${maven.home}/conf/settings.xml)
  • 位于project basedir 中的profile descriptor:(profiles.xml)

profile配置不同的地方的作用是什么?
本质上分为两类:一种是maven setting,作用于所有的project,通常是将不影响project build的配置放在此类文件中。如:(可以通过通配符被pom中properties属性引用)。另一种则是pom.xml,作用于单个project或其子module,通常是将影响project build的参数配置在pom.xml中profile中,如:

profile的激活方式?

  • mvn 命令行 -P,如:
    mvn groupId:artifactId:goal -P profile-1,profile-2
  • settings.xml中的标签,如:
    
    ...
    
    profile-1
    
    ...
    
* 根据JDK环境(自动检测),如:




1.4

...

* 根据OS,如:





Windows XP
Windows
x86
5.1.2600


...

* 根据中的,并同时来命令行中指定参数:mvn groupId:artifactId:goal -Ddebug=false。如:





debug


...

* 根据中的自动激活,如:



profile-1

true

...

* 根据中的,如:





target/generated-sources/axistools/wsdl2java/org/apache/maven


...

**pom.xml中的profile能修改哪些内容?**

* 
* 
* 
* 
* (not actually available in the main POM, but used behind the scenes)
* 
* 
* 
* 
* a subset of the  element, which consists of:
      * 
      * 
      * 
      * 

**如何查看哪些profiles是生效的?**
 mvn help:active-profiles
 mvn help:active-profiles -P appserverConfig-dev
 mvn help:active-profiles -Denv=dev

参考文档:http://maven.apache.org/guides/introduction/introduction-to-profiles.html

文章题目:maven-profile-创新互联
网页链接:http://hbruida.cn/article/gcecg.html