Maven根据Profiled读取不同配置文件

Maven根据Profiled读取不同配置文件 前言在日常开发中,我们大多都会有开发环境(dev)、测试环境(test)、生产环境(prod),不同环境的参数肯定不一样,我们需要在打包的时候,不同环境打不同当包,如果手动改,一方面效率低,容易出错,而且每次打包都改动,非常麻烦,所以Maven给我们提供了profile的配置。 正文Mavenresourcesplugin支持明确声明<directory>指定…

大家好,又见面了,我是你们的朋友全栈君。

 

前言

在日常开发中,我们大多都会有开发环境(dev)、测试环境(test)、生产环境(prod),不同环境的参数肯定不一样,我们需要在打包的时候,不同环境打不同当包,如果手动改,一方面效率低,容易出错,而且每次打包都改动,非常麻烦,所以Maven给我们提供了profile的配置。

 

正文

Maven resources plugin支持明确声明<directory>指定的资源目录中哪些资源需要处理,哪些资源可以不被处理。

Maven resource 中的<include>与<exclude>用于包含或排除某一文件目录下的文件是否是工程资源的。若<include>与<exclude>划定的范围存在冲突,则以<exclude>配置为准。多数情况下,使用<include>和<exclude>是为了配合<filtering>实现替换文件中的变量的需要。

 

例如:

在某一个工程中,src/main/resources目录下都是工程的资源文件,并不需要<include>和<exclude>再进行划定。但如果需要对且仅对其中的jdbc.properties和app.properties两个文件进行过滤,则需要借助<include>和<exclude>进行如下的配置:

<properties>
    <profiles.dir>src/profiles</profiles.dir>
    <resources.dir>src/main/resources</resources.dir>
</properties>

<!--environment-->
<profiles>
    <profile>
        <id>dev</id>
        <build>
            <resources>
                <resource>
                    <directory>src/profiles/dev</directory>
                </resource>
            </resources>
        </build>
    </profile>

    <profile>
        <id>test</id>
        <build>
            <resources>
                <resource>
                    <directory>src/profiles/test</directory>
                </resource>
            </resources>
        </build>

    </profile>

    <profile>
        <id>prod</id>
        <build>
            <resources>
                <resource>
                    <directory>src/profiles/prod</directory>
                </resource>
            </resources>
        </build>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>

</profiles>



<build>
    <resources>
        <resource>
            <directory>${basedir}/src/main/resources</directory>
            <includes>
                <include>${profiles.dir}/*.*</include>
                <include>${resources.dir}/*.*</include>
            </includes>
        </resource>
        <resource>
            <directory>${resources.dir}</directory>
            <excludes>
                <exclude>jdbc.properties</exclude>
                <exclude>app.properties</exclude>
            </excludes>
        </resource>
    </resources>
</build>

 

Maven根据Profiled读取不同配置文件

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132482.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • leetcode 通配符匹配_匹配任意一个字符的通配符是

    leetcode 通配符匹配_匹配任意一个字符的通配符是给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “*

    2022年8月9日
  • Ubuntu下内核编程之第一个模块helloworld[通俗易懂]

    Ubuntu下内核编程之第一个模块helloworld[通俗易懂]模块是驱动开发的必经之路,这也是我们在前边要构建内核源码树的目的所在。因为模块属于kernel编程了,和用户空间的c语言变成不同。他要依附于内核源码树的存在而存在,下面就开始我们的第一个模块的编写吧。     Ubuntu下内核编程之第一个模块——我的叫jun_module。随你怎么起名。以下是建立的全过程:     1、首先肯定是编写模块的源代码,和Makefile。我们建立一个专用

    2022年10月8日
  • 零基础学习3dmax建模有这4个技巧!你都知道?小白学习必备

    零基础学习3dmax建模有这4个技巧!你都知道?小白学习必备3dmax建模方法有很多,大致可分为内置建模模型、复合对象建模、二维图形建模、网格建模、多边形建模、面片建模和NURBS建模。确切地说,它们不应该有固定的分类,因为它们可以交互使用。【3D建模学习资料领取方式见文末】一、内置建模模型这个是3dMax中自带的一些模型,用户可以直接调用这些模型。比如想创建一个台阶,可以使用内置的几何体模型来创建,然后将其转换为”可编辑对象”,再对其进一步调节就行了。但是,使用基本几何形体和扩展几何形体来建模的优点在于快捷简单,只调节参数和摆放位置就可以完成模型

    2022年5月18日
  • 嵌入式(二)——Jlink接口定义「建议收藏」

    嵌入式(二)——Jlink接口定义「建议收藏」我真的是太容易忘了,所以在这里存一下。这是一张不记得从那里搞来的n手图。

    2022年5月28日
  • 安卓学习之-ActivityManager

    安卓学习之-ActivityManagerActivityManager.MemoryInfo:系统可用内存信息ActivityManager.RecentTaskInfo:最近的任务信息ActivityManager.RunningAppProcessInfo:正在运行的进程信息ActivityManager.RunningServiceInfo:正在运行的服务信息

    2022年9月7日
  • java获取汉字首字母以及全拼字母_excel中提取汉字首字母

    java获取汉字首字母以及全拼字母_excel中提取汉字首字母使用Hutool工具类官网链接以下为Hutool支持的拼音库的pom坐标,你可以选择任意一个引入项目中,如果引入多个,Hutool会按照以上顺序选择第一个使用。使用链接查看Hutool最新版本

    2022年10月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号