`
lbp2007
  • 浏览: 9186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven中profile使用

阅读更多
针对不同的环境使用不同的编译打包设置,方便了多环境下的打包部署,一般我们开发项目都会有至少开发环境和正式环境两个,针对这两个环境的配置信息也会有所不同,比如数据库的配置等。我们可以使用maven的profile定义来进行区分,比如我们在项目的pom文件中定义如下片段:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hello</groupId>
    <artifactId>hello</artifactId>
    <version>0.1</version>
    <packaging>jar</packaging>
    <build>
        <resources>
            <resource>
          <directory>src/main/resources</directory>
          <includes>
      <include>*.*</include>
          </includes>
          <filtering>true</filtering>
      </resource>
        </resources>
    </build>

    <properties>
        <jdbc.url>jdbc:mysql://localhost:3306/abc</jdbc.url>
        <jdbc.username>root</jdbc.username>
        <jdbc.password>123456</jdbc.password>
    </properties>

    <profiles>
        <profile>
            <id>local</id>
    <properties>
                <jdbc.url>jdbc:mysql://localhost:3306/abc123</jdbc.url>
                <jdbc.username>rootuser</jdbc.username>
                <jdbc.password>rootpwd</jdbc.password>
    </properties>
        </profile>
    </profiles>
</project>
      这里我们在pom文件中定义了数据库的相关配置,同时定义了一个profile,其id为local,同时在这个profile中也定义了数据库的相关配置。这样我们使用mvn package命令时就可以使用默认的jdbc设置,当我们使用mvn package -P product时maven就会自动使用id为product的profile中的数据库配置,这个是maven读取属性配置文件的覆盖。

      其中pom文件中的resources段的配置:

<resources>
    <resource>
        <directory>src/main/resources</directory>
  <includes>
      <include>*.*</include>
        </includes>
        <filtering>true</filtering>
     </resource>
</resources>
      其中最重要的是<filtering>true</filtering>这段,这个配置的意思是过滤上面指定属性文件中的占位符,占位符是${变量名称}这样的形式,maven会自动读取配置文件,然后解析其中的占位符,使用上面pom文件中定义的属性进行替换。我们可以在src/main/resources下定义一个jdbc.properties配置文件,内容如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=${jdbc.username}
jdbc.password=${jdbc.password}
      执行的效果如下:

## 使用默认的配置信息
mvn clean package

## 使用product环境的配置信息
mvn clean package -P product
分两次执行上面的命令后,然后到项目的target目录下查看打包后的结果,可以看到jdbc.properties文件的内容随着打包的参数不同而变化了,从而也就实现了我们多环境的配置自动打包了。
分享到:
评论

相关推荐

    maven profile多环境配置

    在 POM 文件中,我们可以使用 `&lt;profiles&gt;` 元素来定义不同的 Profile。每个 Profile 都可以定义自己的配置文件,用于存储环境相关的配置信息。例如,我们可以定义一个开发环境的 Profile,如下所示: ```xml ...

    maven-profile-2.0.6.jar

    maven-profile-2.0.6.jar!!!

    使用maven Profile实现多环境构建

    在Profile中,我们可以定义特定环境的依赖,例如不同环境可能需要不同版本的库。我们还可以配置插件的行为,比如在生产环境中启用代码覆盖率检查,而在开发环境中则不启用。此外,Profile还能用来管理资源文件,比如...

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

    例如,我们可以在资源文件中使用`${db.url}`这样的占位符,然后在不同Profile中配置这个变量的值,这样就能生成包含不同数据库连接的部署包。 总结来说,Maven的Profile功能是实现多环境构建的关键,通过它我们可以...

    maven-profile-2.0.jar

    maven项目转换为eclipse项目,可能缺少的包。

    Maven2中文使用手册

    Maven 使用一组独特的标识来唯一确定一个库,这包括 `groupId`、`artifactId` 和 `version`,类似于 Java 中的包名、类名和版本号。 3. **依赖管理(Dependency Management)** Maven 自动处理项目依赖关系,只需...

    maven安装和使用

    3. **设置环境变量**:编辑`/etc/profile`或`~/.bashrc`文件,添加`M2_HOME`环境变量,并将`$M2_HOME/bin`加入到`PATH`变量中。 4. **验证安装**:在终端输入`mvn -version`来验证Maven是否安装成功。 #### 五、...

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

    Maven Profile是Maven提供的一种配置管理机制,允许开发者在不同的环境中使用不同的配置文件。通过使用Maven Profile,可以轻松地在开发、测试、预演和生产等不同的环境中切换配置文件,避免了频繁修改配置文件的...

    maven-profile-2.1.0.jar

    maven-profile-2.1.0.jar

    maven-profile-2.0.2.jar

    maven-profile-2.0.2.jar

    maven-profile-2.0.1.jar

    maven-profile-2.0.1.jar

    maven-profile-2.0.9.jar中文-英文对照文档.zip

    注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【*...

    使用maven Filtering实现多环境构建

    Maven Filtering是Maven资源插件的一个特性,它允许我们在资源文件(如.properties或.xml)中使用占位符,然后在构建时根据当前激活的Profile替换这些占位符。这样,我们可以将环境相关的配置信息如数据库连接URL、...

    Maven管理SpringBoot Profile详解

    最后,需要在应用程序中使用 Maven Profile。在应用程序中,使用 Maven Profile 来管理 Spring Boot 项目的配置文件和依赖关系。 Maven 管理 Spring Boot Profile 是一个非常有用的机制,它可以帮助开发者更好地...

    maven3.6的安装包

    在本文中,我们将详细介绍如何安装和配置 Maven 3.6.3,以及如何使用它来管理你的Java项目。 **一、下载Maven** Maven 的最新稳定版本是 3.6.3,你可以从Apache官方网站下载:...

    Maven 在Android中的应用

    **标题:** Maven在Android中的应用 **描述:** Maven是一个强大的项目管理和构建工具,主要应用于Java领域,...然而,由于Android Studio默认采用Gradle,因此实际应用中,Maven通常是与Gradle配合使用,形成互补优势。

    maven java项目实例

    在这个“maven java项目实例”中,我们将会探讨如何使用Maven进行Java项目的构建,特别是关于Maven Profile动态选择配置文件的实践。 首先,Maven的POM.xml文件是项目的中心,包含了项目的配置信息,如依赖管理、...

    Mac的maven安装包apache-maven-3.6.3.zip

    在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是项目管理和构建的首选。本篇将详细讲解如何在Mac系统上,特别是配备M1芯片的MacBook上安装Apache Maven 3.6.3。 Apache Maven是一个基于项目...

    maven及其安装和使用.7z

    ### IDEA中使用Maven 1. **导入Maven项目**:在IDEA中,选择`File` -&gt; `New` -&gt; `Project from Existing Sources`,然后选择Maven项目的`pom.xml`文件。 2. **配置IDEA的Maven设置**:进入`File` -&gt; `Settings`...

Global site tag (gtag.js) - Google Analytics