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

《Maven实战》学习笔记(5)--不同环境配置

 
阅读更多

一般来说,项目的配置文件都在resources下面,默认maven会从下面路径查找资源文件,这是超级pom中的配置
<resources>
      <resource>
        <directory>F:\maven_workspace\workspace\piaoyi\service\src\main\resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>F:\maven_workspace\workspace\piaoyi\service\src\test\resources</directory>
      </testResource>
    </testResources>

可以将不同环境的配置,通过属性定义的方式配置在profiles中(pom),然后在项目配置文件中使用这些mavne属性,在构建不同的环境时,通过激活不同的frofile来决定使用哪个环境的配置,比如(该profiles不能被子项目继承,只对当前pom项目有效,所以推荐配置在settings中):
<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <db.driver>com.mysql.jdbc.Driver</db.driver>
                <db.url>jdbc:mysql://localhost:3306/test</db.url>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <db.driver>com.mysql.jdbc.Driver</db.driver>
                <db.url>jdbc:mysql://192.168.0.10:3306/test</db.url>
            </properties>
        </profile>
    </profiles>

同时,需要在pom中的修改资源配置(定义在聚会项目中即可,可以被继承),如下,增加在pom中:
    <build>
        <resources>
            <resource>
                <directory>${project.basedir}\src\main\resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${project.basedir}\src\test\resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>


然后在执行构建时,执行如下命令:
mvn clean install -Pdev
激活该profile

也可以在settings.xml中进行配置,以使某个profile一直处于激活状态
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
        <activeProfile>dev</activeProfile>

    </activeProfiles>

以上配置,只能替换classes下的资源文件,如果希望替换webApp下的文件内容,需要增加如下插件:
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <webResources>
                        <resource>
                            <filtering>true</filtering>
                            <directory>src/main/webapp</directory>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>


习惯ant的可以使用如下方式进行资源文件替换
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.3</version>
                <executions>
                    <!-- 执行的动作 -->
                    <execution>
                        <id>ant-copy</id>
                        <phase>prepare-package</phase>      <!-- 绑定到prepare-package 阶段-->
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks> <!-- 调用ant的copy任务执行资源文件替换 -->
                                <echo message="prepare-release run" />
                                <copy todir="${project.build.directory}/classes/config" overwrite="true">
                                    <fileset dir="${project.basedir}/config/release" />
                                </copy>
                                <echo message="prepare-release completed!" />
                            </tasks>
                        </configuration>
                    </execution>
                    可以定义多个动作
                </executions>
            </plugin>




分享到:
评论

相关推荐

    Maven3实战笔记(整合)

    - **多环境配置管理**:利用Maven的profile特性,为不同环境(如开发、测试、生产)配置不同的参数,确保构建过程的灵活性和适应性。 - **构建微服务架构**:在微服务环境中,每个服务都可以作为一个独立的Maven项目...

    Maven3实战笔记(全)

    安装Maven通常涉及下载最新版本的Maven,设置环境变量,以及配置`settings.xml`文件以指定本地仓库位置和远程仓库镜像。 2. **仓库依赖管理**:Maven的核心功能之一是管理项目依赖关系。通过在`pom.xml`文件中声明...

    Maven中文开发指南+实战教程+学习笔记

    **Maven实战教程** 1. **创建新项目** - 使用`mvn archetype:generate`命令创建一个新的Maven项目。 - 选择合适的archetype模板,根据提示输入项目信息。 2. **项目构建与调试** - 使用`mvn install`命令将项目...

    Maven3 学习笔记

    在学习笔记中,这部分内容可能解释了如何定制 `settings.xml` 以适应不同开发环境的需求。 而 `shop` 文件可能是示例项目的名称,表示博主可能通过一个名为 "shop" 的项目来演示 Maven3 的用法,包括项目结构、pom....

    Maven3实战笔记.pdf

    标题中提及的“Maven3实战笔记”指向了Maven这款流行的Java项目管理和自动化构建工具的第三个主要版本。Maven自从引入以来,就极大地简化了Java项目的构建过程,提高了项目构建的标准化程度。它使用项目对象模型...

    尚硅谷Maven课程笔记代码资源

    profiles是Maven中的环境配置切换工具,可以根据不同环境(如开发、测试、生产)定义不同的配置。例如,不同的profile可以设置不同的数据库连接参数或启用/禁用某些插件目标。 七、源码分析 【源码】部分提供了实际...

    Maven实战笔记

    **Maven实战笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过一个统一的项目对象模型(Project Object Model,POM),使得开发者可以轻松地定义...

    经典JavaEE5规范学习笔记

    - Maven学习笔记:介绍了Maven的实战应用,包括环境配置、坐标和依赖、仓库管理、生命周期和插件、聚合、继承、反应堆、Nexus使用、测试、Hudson集成、Profile定制、项目站点生成和插件编写等主题。 - 学习Maven的...

    《IT学习资料》-SSM实战项目-Java高并发秒杀API,详细流程+学习笔记.zip

    《IT学习资料》-SSM实战项目-Java高并发秒杀API是一份全面的教程,旨在帮助学习者掌握如何在Java环境下使用Spring、SpringMVC和MyBatis(简称SSM)框架构建高并发的秒杀系统。这个项目涵盖了从项目初始化到实现完整...

    Maven学习资源打包汇总

    《Maven实战》是一本实践导向的书籍,涵盖了Maven在实际项目中的应用,包括设置环境变量、配置构建服务器、集成持续集成工具如Jenkins,以及使用Maven进行部署。此外,它还介绍了一些高级话题,如使用Maven进行敏捷...

    《java学习》-SSM实战项目-Java高并发秒杀API,详细流程+学习笔记.zip

    本项目提供了详细的流程说明和学习笔记,帮助开发者更好地掌握相关知识。 首先,`pom.xml`文件是Maven项目的配置文件,它定义了项目依赖,包括SSM框架的各个版本和其他必要的库。通过管理依赖关系,Maven能够自动...

    maven3含教程

    **正文** Maven3是一个强大的Java项目管理工具,由Apache软件基金会开发,它极大地简化了...通过"apache-maven-3.0.4"的使用和"Maven3实战笔记"的学习,开发者可以全面掌握Maven的精髓,更好地服务于软件开发工作。

    springboot学习笔记(史上最全)

    **SpringBoot学习笔记** SpringBoot是由Pivotal团队开发的一款基于Java的轻量级框架,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速地创建独立的...

    《IT学习资料2》-SSM实战项目-Java高并发秒杀API,详细流程+学习笔记.zip

    这个项目不仅包含了详细的操作流程,还有学习笔记,帮助开发者深入理解相关技术。 首先,SSM框架是Java Web开发中的经典组合,它将Spring的依赖注入、SpringMVC的MVC模式和MyBatis的持久层操作结合在一起,提高了...

    Spring MVC 学习笔记 一 创建项目

    **Spring MVC 学习笔记 一 创建项目** 在IT领域,Spring MVC是Java Web开发中的一个强大框架,它简化了构建交互式Web应用程序的过程。本笔记将深入探讨如何创建一个基本的Spring MVC项目,让我们开始吧。 首先,...

    ant maven3

    4. **Maven3实战笔记-书签版-《jianggq工作室》.pdf**:这是一本关于Maven3的实战教程,可能包含了Maven3的使用技巧、最佳实践和常见问题解决,适合Maven初学者和进阶者阅读。 5. **Mavenʵס.pdf**:这个文件名可能...

    java学习笔记(包含web开发技术的原理配置)

    Java学习笔记是一个全面涵盖Java基础知识和Web开发技术的资源,非常适合初学者和进阶者深入理解这门语言及其在Web开发中的应用。这份文档可能包含了从语法基础到高级特性的详细讲解,以及如何将Java应用于Web环境的...

    SpringBoot与Shiro整合-权限管理实战-课堂笔记.docx

    - **创建Maven项目**:作为基础,项目需基于Maven构建,导入Spring Boot的父工程依赖,简化项目构建配置。 - **POM.xml配置**:在pom.xml中添加Spring Boot的起步依赖,以便利用其提供的默认配置和自动配置功能。 ...

Global site tag (gtag.js) - Google Analytics