`

激活Maven profile的几种方式

 
阅读更多
原文地址:http://juvenshun.iteye.com/blog/208714




首先简单介绍下 Maven 的 profile 是什么。对于人来说,profile 是指人的肖像,轮廓,比如论坛里每个人注册了帐号后,可以设置自己的 profile,放上照片,介绍等等。对于 Maven 来说又是怎样呢?整个项目定义好了项目对象模型(POM),就像论坛为每个人提供了默认的行为功能,如果我想改变我机器上的 POM 呢?这时就可以使用 profile。下面举个例子:
Xml代码  收藏代码
<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,如:
Xml代码  收藏代码
<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 的时候加上一条属性就可以了,如:
Xml代码  收藏代码
<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 激活它。激活方式如下:
Xml代码  收藏代码
<settings> 
  ... 
  <activeProfiles> 
    <activeProfile>local_db</activeProfile> 
  </activeProfiles> 
</settings> 

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

相关推荐

    Maven管理SpringBoot Profile详解

    Maven Profile 是 Maven 构建工具中的一种机制,它允许开发者在构建过程中针对不同的 Profile 环境执行不同的操作。Maven Profile 由 pom.xml 文件中的 `&lt;Profiles&gt;` 标签管理。每个 Profile 中可以设置 id(唯一...

    Maven的配置文件,settings.xml文件

    在构建过程中,Maven会根据激活的profile来决定使用哪些配置。 servers标签用于配置需要认证信息的远程仓库或分发仓库的服务器信息。通过在该标签中配置用户名和密码,可以安全地与远程仓库交互。 properties标签...

    apache-maven-3.5.2

    **多模块项目**在大型项目中很常见,Maven提供了一种方便的方式来管理这些模块。在一个总`pom.xml`(称为聚合POM)中,可以声明子模块,Maven会递归地处理每个模块的构建。 **仓库管理**方面,Maven除了本地仓库外...

    浅谈Maven环境隔离应用

    在Maven项目的实际应用中,通常会定义以下几种常见的环境类型: - 本地开发环境(Local):这是开发者个人使用的开发环境,便于快速测试代码修改。 - 开发环境(Dev):代码在经过个人测试后,会部署到开发环境中...

    第三章 企业项目开发--企业中的项目架构以及多环境分配1

    - Maven的profile可以用于管理不同环境的配置,通过在pom.xml中定义不同的profile,每个profile对应一种环境的配置。在构建时,可以通过指定激活的profile来选择合适的配置。 3. **项目结构**: - 提到了一个示例...

    tgb

    5. `-Pdev`: `-P` 参数用来激活特定的Maven配置profile。`dev`可能是一个预设的开发配置,可能包含了如开发库依赖、配置属性等,这些配置只在开发环境中使用,不适用于生产环境。 结合以上信息,我们可以理解在`tgb...

    java的SpringBoot基础常用规范

    下面将详细介绍Spring Boot的几种基础配置方式。 ##### 2.1 配置文件格式 Spring Boot 支持多种配置文件格式,包括`.properties`、`.yml`和`.yaml`等。其中,`.properties`文件是传统的键值对形式;而`.yml`和`....

    Spring Boot面试题(2022最新版)-重点

    **6.8 开启 Spring Boot 特性有哪几种方式?** - **注解驱动:** 使用 `@SpringBootApplication` 等注解来启动自动配置。 - **配置文件:** 通过 `application.properties` 或 `application.yml` 文件来配置 Spring...

    Flutter下Android Studio配置gradle的方法

    4. 保存并激活`.bash_profile`文件,通过执行`source ~/.bash_profile`。 5. 验证Gradle是否配置成功,通过运行`gradle -v`命令。 然而,手动配置可能会遇到一些问题,比如路径识别错误(需要在Android Studio.app...

    heartbeat:偶尔将声音样本发送到输出的简单应用程序。 例如保持无线耳机在线

    4. **无线耳机通信协议**:为了保持无线耳机在线,开发者需要理解蓝牙或其他无线音频传输协议的工作原理,如蓝牙的A2DP(Advanced Audio Distribution Profile)和AVRCP(Audio/Video Remote Control Profile)。...

Global site tag (gtag.js) - Google Analytics