原文->http://juvenshun.iteye.com/blog/208714
首先简单介绍下 Maven 的 profile 是什么。对于人来说,profile 是指人的肖像,轮廓,比如论坛里每个人注册了帐号后,可以设置自己的 profile,放上照片,介绍等等。对于 Maven 来说又是怎样呢?整个项目定义好了项目对象模型(POM),就像论坛为每个人提供了默认的行为功能,如果我想改变我机器上的 POM 呢?这时就可以使用 profile。下面举个例子:
- <profiles>
- <profile>
- <id>jdk16</id>
- <activation>
- <jdk>1.6</jdk>
- </activation>
- <modules>
- <module>simple-script</module>
- </modules>
- </profile>
- </profiles>
这个 profile 的意思是,当机器上的 JDK 为1.6的时候,构建 simple-script 这个子模块,如果是1.5或者1.4,那就不构建,这个 profile 是由环境自动激活的。
我们需要在合适的地方使用合适的 profile ,并且在合适的时候用合适的方式将其激活,你不能在构建服务器上激活非公共的 profile,你也不能要求开发人员写很复杂的命令来使用常规的 profile。因此这里介绍一下几种 profile 的激活方式。
1. 根据环境自动激活。
如前一个例子,当 JDK 为1.6的时候,Maven 就会自动构建 simple-script 模块。除了 JDK 之外,我们还可以根据操作系统参数和 Maven 属性等来自动激活 profile,如:
- <profile>
- <id>dev</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- <jdk>1.5</jdk>
- <os>
- <name>Windows XP</name>
- <family>Windows</family>
- <arch>x86</arch>
- <version>5.1.2600</version>
- </os>
- <property>
- <name>mavenVersion</name>
- <value>2.0.5</value>
- </property>
- <file>
- <exists>file2.properties</exists>
- <missing>file1.properties</missing>
- </file>
- </activation>
- ...
- </profile>
2. 通过命令行参数激活。
这是最直接和最简单的方式,比如你定义了一个名为 myProfile 的 profile,你只需要在命令行输入 mvn clean install -Pmyprofile 就能将其激活,这种方式的好处很明显,但是有一个很大的弊端,当 profile 比较多的时候,在命令行输入这写 -P 参数会让人觉得厌烦,所以,如果你一直用这种方式,觉得厌烦了,可以考虑使用其它自动激活的方式。
3. 配置默认自动激活。
方法很简单,在配置 profile 的时候加上一条属性就可以了,如:
- <profile>
- <id>dev</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- ...
- </profile>
在一个特殊的环境下,配置默认自动激活的 profile 覆盖默认的 POM 配置,非常简单有效。
4. 配置 settings.xml 文件 profile 激活。
settings.xml 文件可以在 ~/.m2 目录下,为某个用户的自定义行为服务,也可以在 M2_HOME/conf 目录下,为整台机器的所有用户服务。而前者的配置会覆盖后者。同理,由 settings.xml 激活的 profile 意在为用户或者整个机器提供特定环境配置,比如,你可以在某台机器上配置一个指向本地数据库 URL 的 profile,然后使用该机器的 settings.xml 激活它。激活方式如下:
- <settings>
- ...
- <activeProfiles>
- <activeProfile>local_db</activeProfile>
- </activeProfiles>
- </settings>
Maven 提供的 profile 功能非常强大和灵活,用得好的话,可以有效的隔离很多特殊的配置,使得整个项目能在不同环境中顺利的构建。但是,强大和灵活带来得问题是相对难掌握,希望本文能对 Maven 使用者有帮助。
相关推荐
基本介绍了如何使用 VC6.0的profile
轮廓Go的简单分析支持包安装go get github.com/pkg/profile用法在应用程序中启用性能分析就像在主函数顶部一行一样简单import "github.com/pkg/profile"func main () { defer profile . Start (). Stop () ...}选项...
市场概况 市场概况是一种交易技术,由J. Peter Steidlmayer在...使用market-profile / profile_command_line.py作为命令行。 例子: python profile_command_line.py [location of csv] [duration(ms)] --compact [t
安装$ npm install time-profile用法const timeProfile = require ( 'time-profile' ) ;const profiler = timeProfile . getProfiler ( 'aProfiler' ) ;profiler . start ( 'app launch' ) ;// ... do workprofiler ...
主要介绍了Python性能分析工具Profile使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
ANTS Memory Profile 是一款使用方便,可以很快看到内存使用情况的分析工具,对内存泄漏有很好的监视功能!
本篇文章主要介绍了spring @profile注解的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用public文件夹 更改HTML 在模块系统之外添加资产 何时使用public文件夹 使用全局变量 添加引导程序使用自定义主题 增加流量 添加路由器 添加自定义环境变量 在HTML中引用环境变量 在Shell中添加临时环境变量 在....
当我们要对某一条sql的性能进行分析时,可以使用它。 Profiling是从 mysql5.0.3版本以后才开放的。 启动profile之后,所有查询包括错误的语句都会记录在内。 关闭会话或者set profiling=0 就关闭了。(如果将...
vue-github-profile一个vue组件,用于查看确定的用户安装的概要文件和存储库$ npm install --save vue-github-profile用法
主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下
主要介绍了使用maven profile指定配置文件打包适用多环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
用法cli webpack --plugin cpuprofile-webpack-plugin开发服务器webpack-dev-server --plugin cpuprofile-webpack-pluginwebpack.config.js const CpuProfilerWebpackPlugin = require ( 'cpuprofile-webpack-plugin...
流利的CSV .NET库,用于流畅地读取csv文件。好处用.NET Standard 2.0编写... 其次,一个名为“ MakingSureThat”的新API成员使您可以比以前的基于异常处理的方法更快地检查数据的完整性。 如果发现错误或有改进的想法
主要介绍了Django使用Profile扩展User模块方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
profile_history 分析最新的分析会话并在... 然后可以使用图底部的滑块以交互方式更改详细程度。 示例用法: 简介; myProgram(); profile_history 简介; 我的程序(); profData=profile('信息'); profile_
配置文件是使用方法存储基本信息的软件包,包括地址,电话号码,电子邮件和网站。 安装 为了在您的Laravel项目中安装Profile: $ composer require cleaniquecoders/profile 然后在您的config/app.php中将以下内容...
入门React组件安装: npm i -S profile-hover 用法: import ProfileHover from 'profile-hover' ;const MyComponent = ( ) => ( < ProfileHover xss=removed> ) ;HTML元素首先在页面末尾添加脚本。 < script ...
主要介绍了浅谈spring注解之@profile,@profile通过配置来改变参数,这里整理的详细的用法,有兴趣的可以了解一下