使用maven profile实现多环境可移植构建

简介: 配置profile这里定义了三个环境,分别是development(开发环境)、test(测试环境)、production(生产环境),其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境。

配置profile

这里定义了三个环境,分别是development(开发环境)、test(测试环境)、production(生产环境),其中开发环境是默认激活的(activeByDefault为true),这样如果在不指定profile时默认是开发环境。
同时每个profile还定义了两个属性,其中profiles.active表示被激活的profile的名称,deploy.url表示发布服务器的地址。我们需要在下面使用到这两个属性。
另外host和port分别是发布服务器的主机地址和端口号。
首先是profile配置,在pom.xml中添加如下profile的配置:

    <profiles>
        <profile>
            <!-- 本地开发环境 -->
            <id>development</id>
            <properties>
                <profiles.active>development</profiles.active>
            </properties>

        </profile>
        <profile>
            <!-- 测试环境 -->
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
        <profile>
            <!-- 生产环境136 -->
            <id>production136</id>
            <properties>
                <profiles.active>production136</profiles.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <!-- 生产环境207 -->
            <id>production207</id>
            <properties>
                <profiles.active>production207</profiles.active>
            </properties>

        </profile>
    </profiles>

配置文件目录

针对不同的环境,我们定义不同的配置文件,而这些配置文件都做为资源文件放到maven工程的resources目录下,即src/main/resources目录下,且各个环境的配置分别放到相应的目录下,而所有环境都公用的配置,直接放到src/main/resources目录下即可。如下图所示:

这里写图片描述

maven资源插件配置

在pom中的build节点下,配置资源文件的位置,如下所示:

        <resources>  
            <resource>  
                <directory>src/main/resources</directory>  
                <!-- 资源根目录排除各环境的配置,使用单独的资源目录来指定 -->  
                <excludes>  
                    <exclude>test/*</exclude>  
                    <exclude>production136/*</exclude>
                    <exclude>production207/*</exclude>  
                    <exclude>development/*</exclude>  
                </excludes>  
            </resource>  
            <resource>  
                <directory>src/main/resources/${profiles.active}</directory>  
            </resource>  
        </resources>  

构建与发布

下图中根据发布需要更改activation的位置,如下加入我需要发布到生产环境136的服务器,那么activation的配置放在如下位置即可。
这里写图片描述
修改好activation的位置后,依次执行run as Maven clean—> run as Maven install
生产的war包会打印在console末尾,把war包上传到相应服务器即可。

目录
相关文章
|
4月前
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
56 1
|
5月前
|
自然语言处理 Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性。`bus-core-api(1.0-SNAPSHOT)`构建后,自动触发`app-web-ui`和`app-desktop-ui`的构建,两者均依赖bus-core-api的1.0快照版。 ``` 纯文本摘要: Maven自动化构建保证依赖项的稳定性:当`bus-core-api`的1.0-SNAPSHOT版本完成构建时,它会触发依赖它的`app-web-ui`和`app-desktop-ui`项目的构建,这两个项目都依赖`bus-core-api`的相同版本。
|
5月前
|
Java API Maven
Maven 自动化构建
**摘要 (Markdown 格式)**: Maven自动化构建确保依赖稳定性。当`bus-core-api` (1.0-SNAPSHOT) 构建后,依赖它的`app-web-ui`和`app-desktop-ui`(均依赖bus-core-api的1.0快照)会自动触发构建,保证与最新核心API兼容。
|
5月前
|
Java 测试技术 Maven
Maven 构建生命周期
Maven生命周期包括clean(clean目标清理输出),default(validate到deploy执行编译、测试、打包、验证、安装和部署),site(site与deploy-site生成发布站点)。每个阶段由插件目标组成,如mvn clean package执行清理和打包。生命周期阶段按顺序执行,目标可在阶段外独立调用。
|
5月前
|
自然语言处理 Java Maven
Maven 自动化构建
Maven自动化构建确保依赖稳定性。当`bus-core-api`(1.0-SNAPSHOT)构建后,`app-web-ui`和`app-desktop-ui`(两者依赖1.0的bus-core-api)自动触发构建,保证项目间的兼容性。 ``` 纯文本摘要: Maven自动化构建用于保持依赖项目的稳定性。例如,bus-core-api(1.0-SNAPSHOT)构建完成后,依赖它的app-web-ui和app-desktop-ui这两个项目(都依赖bus-core-api的1.0版本)会自动开始构建,以确保它们与更新的core接口兼容。
|
4月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
174 1
|
20天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
74 8
|
18天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
53 3
|
2月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
132 1
Maven——创建 Spring Boot项目
|
2月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
28 1
如何使用 maven 创建一个 Spring Boot项目

推荐镜像

更多