详解Maven profile配置管理及激活profile的几种方式
为了实现不同环境构建的不同需求,这里使用到了profile。因为profile能够在构建时修改pom的一个子集,或者添加额外的配置元素。接下来介绍Maven中对profile的配置和激活。
针对不同环境的profile的配置
为了体现不同环境的不同构建,需要配置好不同环境的profile,代码如下:
dev_evn com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test root root test_evn com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/test_db root root
在两个不同的profile中,配置了同样的属性,不一样的值。按照前面的介绍,在开发时可以用mvn命令后面添加“-Pdev_evn”激活“dev_evnprofile”。
激活profile配置
在Maven中,可以选用如下的方式激活profile。
1.命令行激活
用户可以在mvn命令行中添加参数“-P”,指定要激活的profile的id。如果一次要激活多个profile,可以用逗号分开一起激活。例如:
mvncleaninstall-Pdev_env,test_evn
这个命令就同时激活了id为“dev_evn”和“test_evn”的两个profile。
2.Settings文件显示激活
如果希望某个profile默认一直处于激活状态,可以在settings.xml中配置activeProfiles元素,指定某个profile为默认激活状态,样例配置代码如下:
... ... dev_evn
3.系统属性激活
可以配置当某个系统属性存在时激活profile,代码如下:
... profileProperty
甚至还可以进一步配置某个属性的值是什么时候激活,例如:
... profileProperty dev
这样就可以在mvn中用“-D”参数来指定激活,例如:
Mvncleaninstall-DprofileProperty=dev
表示激活属性名称为profileProperty,值为dev的profile。
实际上这也是一种命令激活profile的方法,只是用的是“-D”参数指定激活的属性和值,而前面的是用的“-P”参数指定激活的profile的id而已。
4.操作系统环境激活
用户可以通过配置指定不同操作系统的信息,实现不同操作系统做不同的构建。例如:
WindowXP Windows x86 5.1.2600
family的值是Windows、UNIX或Mac。name为操作系统名称。arch为操作系统的架构。version为操作系统的版本。具体的值可以通过查看环境中的系统属性“os.name”“os.arch”和“os.version”获取。
5.文件存在与否激活
当然,也可以通过配置判断某个文件存在与否来决定是否激活profile,样例配置代码如下:
t1.properties t2.properties
6.默认激活
最后,还可以配置一个默认的激活profile,例如:
true
需要注意的是,如果pom中有任何一个profile通过其他方式被激活的话,所有配置成默认激活的profile都会自动失效。可以使用如下命令查看当前激活的profile。
Mvnhelp:active-profiles
也可以使用如下命令查看所有的profile。
Mvnhelp:all-profiles
profile的种类
前面介绍了profile的意义和激活方式。那么在Maven中,有哪些profile?如何配置呢?
根据profile配置的位置不同,可以将profile分成如下几种。
1)pom.xml
pom.xml中声明的profile只对当前项目有效。
2)用户settings.xml
在用户目录下的“.m2/settings.xml”中的profile,对本机上的该用户的所有Maven项目有效。
3)全局settings.xml
在Maven安装目录下conf/settings.xml中配置的profile,对本机上所有项目都有效。
为了不影响其他用户且方便升级Maven,一般配置自己的settings.xml,不要轻易修改全局的settings.xml。同样的道理,一般不需要修改全局settings.xml中的profile。
不同类型的profile中可以声明的pom元素是不一样的,pom.xml中的profile能够随同pom.xml一起提交到代码仓库中,被Maven安装到本地仓库里面,并且能被部署到远程Maven仓库中。也就是说,可以保证profile伴随特定的pom.xml一起存在。所以它可以修改或者添加很多pom元素,例如:
如上代码所示,在pom中的profile元素比较多,可以添加或修改插件配置、项目资源目录、测试资源目录配置和项目构建的默认名称等。
除了pom中的profile外,其他外部的profile可以配置的元素相对就少些,因为那些外部profile无法保证同项目中的pom.xml一起发布。
如果在外部profile中配置了项目依赖,开发用户可以在本地编译,但是因为依赖配置没有随同pom.xml一起发布部署到仓库中,别的用户下载了该项目后,就会因为缺少依赖而失败。
为了避免这样的不一致情况,很多在pom的profile可以出现的元素不允许在外部profile中出现。
在外部profile可以声明的元素如下:
这些外部profile元素不足以影响项目的正常构建,只会影响项目的仓库和Maven属性。
到此这篇关于详解Mavenprofile配置管理及激活profile的几种方式的文章就介绍到这了,更多相关Mavenprofile配置及激活profile内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!