`
san_yun
  • 浏览: 2654875 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mvn的profile

 
阅读更多

首先简单介绍下 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 使用者有帮助。

分享到:
评论

相关推荐

    使用maven profile指定配置文件打包适用多环境的方法

    使用maven profile指定配置文件打包适用多环境的方法 Maven Profile是Maven提供的一种配置管理机制,允许开发者在不同的环境中使用不同的配置文件。通过使用Maven Profile,可以轻松地在开发、测试、预演和生产等...

    匹处理mvn命令用法

    例如,开发环境和生产环境的数据库连接配置可以分别定义在不同的profile中。 7. **设置Maven属性**:通过`-D`选项可以传递系统属性,如`mvn -DskipTests`将跳过测试。 **总结** 掌握Maven的命令行操作是每个Java...

    mvn 配置 yui 自动 打包

    除了直接在pom.xml中配置外,还可以通过编写Maven的profile或在settings.xml文件中配置全局插件,以便于项目间的复用和管理。 值得注意的是,YUI Compressor虽然强大,但它可能无法处理某些复杂的JavaScript语法,...

    通过mvn命令下载pom.xml中的jar包

    1. 配置Maven:批处理文件可能会引用一个名为`settings.xml`的配置文件,这个文件位于`~/.m2/`目录下(对于Windows用户通常是 `%USERPROFILE%\.m2\`)。`settings.xml`用于配置Maven的行为,比如定义镜像源、用户...

    mvn-examples-1.0&Maven;权威指南中文版

    1. mvn-examples-1.0 &lt;module&gt;ch03-simple &lt;module&gt;ch04-custom &lt;module&gt;ch05-simple-web &lt;module&gt;ch06-multi &lt;module&gt;ch07-multi-spring &lt;module&gt;ch08-optimize &lt;module&gt;ch09-pom &lt;module&gt;ch10-lifecycle ...

    使用maven Profile实现多环境构建

    Maven作为Java项目管理的强大工具,提供了Profile功能来解决这个问题。Profile允许我们在一个项目中定义多个构建配置,每个配置对应一个特定的环境。下面将详细讲解如何使用Maven Profile实现多环境构建。 首先,让...

    maven利用Profile构建不同环境的部署包

    例如,如果我们想构建开发环境的包,可以在命令行运行 `mvn package -Pdev`。 对于描述中的"WEB-INF"和"META-INF"目录,这两个是Java Web应用的标准目录结构的一部分。`WEB-INF`目录通常包含Web应用的类文件、配置...

    mvn环境搭建

    4. **验证Maven安装**:完成上述步骤后,打开终端或命令提示符,输入`mvn -v`(或`mvn --version`)。如果正确配置了环境变量,将会显示Maven的版本信息,表明安装成功。 5. **配置Maven设置**:Maven的默认配置...

    Spring Boot技术知识点:如何读取不同路径里的applicationContext.xml配置文件4

    在每个profile的配置文件夹下(如`src/main/resources/config/profile-name/`)放置对应的`applicationContext.xml`,并激活相应的profile。 除了以上方法,还应注意一些最佳实践和注意事项: - **避免过度依赖XML...

    解决 Mac和Idea 终端关闭后,环境变量失效,每次都需source ~/.bash_profile 问题

    最近使用mac系统后,每次在~/.bash_profile 配置了mvn 等环境变量后,使用 source后 环境变量生效,但是当终端退出后,环境变量就失效。 zsh: command not found: mvn mac 每次启动终端都会加载当前用户下的.zshrc...

    springboot通过@Profile注解配置不同环境

    当执行`mvn package`命令时,Maven会根据激活的profile(默认是`dev`)来过滤资源,从而打包进对应环境的配置文件。 在实际项目中,我们通常还会利用Spring Boot的`spring.profiles.active`属性来指定当前运行环境...

    maven内存溢出解决放啊

    在使用Maven进行项目构建时,尤其是在处理大型项目或执行资源密集型任务(如`mvn site`)时,经常会遇到Java堆空间溢出的问题。这类问题通常是由于Maven运行所需的内存超过了系统分配给它的默认内存限制所致。本文将...

    MavenHelloWorld

    执行`mvn package`命令后,Maven会自动完成编译、测试和打包整个流程,生成的可执行文件会保存在target目录下。 总结起来,`MavenHelloWorld`项目展示了Maven的核心价值:通过统一的项目结构和配置管理,简化了项目...

    mvn-examples-1.0.zip MAVEN权威指南对应示例代码

    通过深入研究这些示例,你不仅可以掌握Maven的基础用法,还能了解到高级特性,例如自定义插件、profile切换、远程仓库的使用,以及如何利用Maven进行持续集成。这将对提升你的Java开发效率,特别是在大型团队协作...

    maven安装包_3.6.3_下载.zip

    3. 对于Unix/Linux系统,编辑~/.bashrc或~/.bash_profile文件,添加以下行: ``` export M2_HOME=/path/to/apache-maven-3.6.3 export PATH=$PATH:$M2_HOME/bin ``` 然后运行 `source ~/.bashrc` 或 `source ~/...

    最好用的maven3

    - **profile**:Profile允许根据不同的环境(如开发、测试、生产)定制不同的配置。 - **远程仓库**:除了默认的中央仓库外,还可以配置私有仓库,用于存放公司内部的依赖。 ### 5. Maven 3 的持续集成与部署 - **...

    maven testng 报告中文乱码(csdn)————程序.pdf

    中文乱码问题通常发生在Maven执行`mvn test`命令后生成的TestNG测试报告中。这可能是由于编码设置不正确,导致Maven在读取或写入文件时未能正确处理中文字符。解决这个问题,我们需要关注以下几个关键点: 1. **...

    ubuntu安装maven

    找到Maven的安装路径,通常是在 `/usr/share/maven/bin`,然后编辑`~/.bashrc`或`~/.bash_profile`(取决于你的Ubuntu版本): ```bash nano ~/.bashrc ``` 在文件末尾添加以下行,替换`/usr/share/maven/bin`为...

    Mac开发环境搭建之 apache-maven-3.5.3 MacOS版 免安装直接使用

    输入mvn -v查看Maven是否安装成功 如果遇到以下异常,重新编辑bash_profile文件,增加export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home后,并重新运行$ source ~/.bash_profile...

    maven的settings.xml文件

    `settings.xml`是Maven的核心配置文件之一,它位于用户的Maven配置目录下,通常在`~/.m2/`(对于Unix系统)或`%USERPROFILE%\\.m2\`(对于Windows系统)。这个文件包含了Maven运行时的个性化设置,包括本地仓库路径...

Global site tag (gtag.js) - Google Analytics