`
lp895876294
  • 浏览: 284741 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

profile用法

 
阅读更多

原文->http://juvenshun.iteye.com/blog/208714

首先简单介绍下 Maven 的 profile 是什么。对于人来说,profile 是指人的肖像,轮廓,比如论坛里每个人注册了帐号后,可以设置自己的 profile,放上照片,介绍等等。对于 Maven 来说又是怎样呢?整个项目定义好了项目对象模型(POM),就像论坛为每个人提供了默认的行为功能,如果我想改变我机器上的 POM 呢?这时就可以使用 profile。下面举个例子:

Xml代码  收藏代码
  1. <profiles>  
  2.   <profile>  
  3.     <id>jdk16</id>  
  4.     <activation>  
  5.       <jdk>1.6</jdk>  
  6.     </activation>  
  7.     <modules>  
  8.       <module>simple-script</module>  
  9.     </modules>  
  10.   </profile>  
  11. </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,如:

Xml代码  收藏代码
  1. <profile>  
  2.   <id>dev</id>  
  3.   <activation>  
  4.     <activeByDefault>false</activeByDefault>  
  5.     <jdk>1.5</jdk>  
  6.     <os>  
  7.       <name>Windows XP</name>  
  8.       <family>Windows</family>  
  9.       <arch>x86</arch>  
  10.       <version>5.1.2600</version>  
  11.     </os>  
  12.     <property>  
  13.       <name>mavenVersion</name>  
  14.       <value>2.0.5</value>  
  15.     </property>  
  16.     <file>  
  17.       <exists>file2.properties</exists>  
  18.       <missing>file1.properties</missing>  
  19.     </file>  
  20.   </activation>  
  21.   ...  
  22. </profile>  

2. 通过命令行参数激活。

这是最直接和最简单的方式,比如你定义了一个名为 myProfile 的 profile,你只需要在命令行输入 mvn clean install -Pmyprofile 就能将其激活,这种方式的好处很明显,但是有一个很大的弊端,当 profile 比较多的时候,在命令行输入这写 -P 参数会让人觉得厌烦,所以,如果你一直用这种方式,觉得厌烦了,可以考虑使用其它自动激活的方式。

 

3. 配置默认自动激活。

方法很简单,在配置 profile 的时候加上一条属性就可以了,如:

Xml代码  收藏代码
  1. <profile>  
  2.   <id>dev</id>  
  3.   <activation>  
  4.     <activeByDefault>true</activeByDefault>  
  5.   </activation>  
  6.   ...  
  7. </profile>  

在一个特殊的环境下,配置默认自动激活的 profile 覆盖默认的 POM 配置,非常简单有效。

 

4. 配置 settings.xml 文件 profile 激活。

settings.xml 文件可以在 ~/.m2 目录下,为某个用户的自定义行为服务,也可以在 M2_HOME/conf 目录下,为整台机器的所有用户服务。而前者的配置会覆盖后者。同理,由 settings.xml 激活的 profile 意在为用户或者整个机器提供特定环境配置,比如,你可以在某台机器上配置一个指向本地数据库 URL 的 profile,然后使用该机器的 settings.xml 激活它。激活方式如下:

Xml代码  收藏代码
  1. <settings>  
  2.   ...  
  3.   <activeProfiles>  
  4.     <activeProfile>local_db</activeProfile>  
  5.   </activeProfiles>  
  6. </settings>  

 

Maven 提供的 profile 功能非常强大和灵活,用得好的话,可以有效的隔离很多特殊的配置,使得整个项目能在不同环境中顺利的构建。但是,强大和灵活带来得问题是相对难掌握,希望本文能对 Maven 使用者有帮助。

分享到:
评论

相关推荐

    profile VC6.0 提供的剖分程序的使用方法

    **剖分程序与VC6.0 Profile的使用详解** 在软件开发过程中,性能优化是一项至关重要的任务,而剖分程序(Profile)就是帮助开发者进行性能分析的重要工具。Visual C++ 6.0(简称VC6.0)作为一款经典的集成开发环境...

    SpringBoot中的Profile配置的使用示例源码

    - 我们可以在类或方法上使用`@Profile`注解,指定该类或方法仅在特定profile下生效。例如: ```java @Component @Profile("dev") public class DevConfig { // ... } ``` 这表示`DevConfig`类仅在开发环境...

    Python性能分析工具Profile使用实例

    本文将深入探讨`Profile`的使用方法和实例。 首先,`Profile`模块允许我们跟踪代码执行的时间,以确定哪些函数或代码块消耗了最多的资源。通过引入`profile`模块,我们可以对目标函数进行性能分析。例如,在提供的...

    C++6.0中profile的配置使用

    ### C++6.0中Profile的配置与使用详解 #### 一、Profile菜单灰色问题解决方法 在使用Visual C++ 6.0时,我们可能会遇到Profile菜单处于灰色不可用的状态,这通常是因为某些设置没有正确配置导致的。解决这个问题的...

    Lenovo Low Profile USB Keyboard

    用户手册通常会详细介绍如何配置和使用键盘,包括Fn键与其他键的组合使用方法。驱动程序是确保键盘正常工作的软件组件,有时更新驱动可以解决兼容性问题或添加新功能。设置工具则可能是专门用来调整键盘设置的应用...

    oracle用户下.bash_profile文件修改

    第一种方法是将修改内容写在.bash_profile文件的末尾,以源代码的方式(即使用.命令)调用.bashrc文件,从而加载用户的个人配置和函数。然后,更新PATH变量、设置临时目录变量、定义ORACLE_BASE和ORACLE_HOME,以及...

    查看UA和Profile的方法(1)1

    在IT行业中,了解用户的代理(User Agent,简称UA)和配置文件(Profile)对于开发者、测试人员以及网络分析人员来说是至关重要的。UA是浏览器或应用程序向服务器发送的一个字符串,表明了用户使用的设备、操作系统...

    ICC Profile产生的缘由

    ### ICC Profile产生的缘由及其重要性 #### 一、ICC Profile产生的背景 ICC Profile的诞生源于颜色管理和标准化的...无论是对于专业设计师还是普通用户来说,掌握ICC Profile的基本原理和使用方法都是非常重要的。

    使用maven Profile实现多环境构建

    激活Profile的方法有多种。默认情况下,`dev` Profile会被激活,因为设置了`activeByDefault`为`true`。此外,我们可以通过以下命令行参数指定激活哪个Profile: ```bash mvn -Ptest clean install ``` 或者通过...

    Mysql Profile

    MySQL Profile 是一种针对 ASP.NET 应用程序的身份验证和授权机制,它允许开发人员使用 MySQL 数据库作为存储后端,而不是传统的 SQL Server 或 Access。在 ASP.NET 2.0 中,Membership 和 Role Manager 提供了强大...

    profile:Go的简单分析

    轮廓Go的简单分析支持包安装go get github.com/pkg/profile用法在应用程序中启用性能分析就像在主函数顶部一行一样简单import "github.com/pkg/profile"func main () { defer profile . Start (). Stop () ...}选项...

    profile使用自己的数据库

    首先,我们需要了解`profile`模块的基本用法。`cProfile`是Python标准库中的一个模块,它是`profile`的优化版本,支持更精确的计时。通常,我们通过以下方式使用`cProfile`: ```python import cProfile def my_...

    Bluetooth的Profile

    该 Profile 定义了设备之间建立基带链路的通用方法,是其他 Profile 的基础。 13. GOEP(General Object Exchange Profile):通用对象交换规范。该 Profile 允许设备之间传输对象,例如图片、文本等。 14. HCRP...

    UML Profile For EJB Public Draft.pdf

    综上所述,《UML Profile For EJB Public Draft》是一份旨在指导如何使用UML对EJB进行有效建模的重要文档,它不仅提供了具体的映射规则,还涵盖了最佳实践和使用案例,对于从事EJB开发的技术人员具有重要的参考价值...

    ANTS Memory Profile 内存使用监视器

    ANTS Memory Profile 是一款使用方便,可以很快看到内存使用情况的分析工具,对内存泄漏有很好的监视功能!

    market-profile:从OHLC数据生成市场概况

    市场概况 市场概况是一种交易技术,由J. Peter Steidlmayer在...使用market-profile / profile_command_line.py作为命令行。 例子: python profile_command_line.py [location of csv] [duration(ms)] --compact [t

    H.264 High profile

    为了验证H.264 High Profile的有效性和性能,研究人员通常会使用JM-12 (Joint Module)软件进行测试。测试内容可能包括: - **压缩比**:衡量编码前后视频数据量的变化。 - **峰值信噪比(PSNR)**:评估视频质量的一...

    ASP.NET AJAX深入浅出系列课程(14):Profile Service的实现方式与扩展

    配置完成后,开发人员可以使用内置的Profile类在代码中轻松地读写这些属性。 Profile Service的实现主要分为两个步骤:配置和使用。在配置阶段,你需要在Web.config中添加`&lt;profile&gt;`元素,并定义你想要的属性。...

    time-profile:测量功能的执行时间

    安装$ npm install time-profile用法const timeProfile = require ( 'time-profile' ) ;const profiler = timeProfile . getProfiler ( 'aProfiler' ) ;profiler . start ( 'app launch' ) ;// ... do workprofiler ...

    spring @profile注解的使用方法

    Spring @Profile注解的使用方法 Spring @Profile注解是Spring Framework中的一种注解,它用于标明当前运行环境,可以根据不同的环境注入相应的Bean。下面将详细介绍Spring @Profile注解的使用方法和它的应用场景。 ...

Global site tag (gtag.js) - Google Analytics