使用Maven自动构建项目配置文件

1、使用背景

在实际项目中,运行环境通常有开发、测试、预发布、正式环境,在配置参数上各个环境可能存在差异,差异比较大的可能就是端口了。在之前我们每次发布一个环境都需要手动的修改对应的配置文件,这样做就会导致工作量的增加还容易出错。
Maven提供了一种方便解决这种问题的方案,那就是profile功能。

2、profile简介

profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。
profile定义的位置
(1)针对于特定项目的profile配置我们可以定义在该项目的pom.xml中。(下面举例是这种方式)
(2)针对于特定用户的profile配置,我们可以在用户的settings.xml文件中定义profile。该文件在用户家目录下的“.m2”目录下。
(3)全局的profile配置。全局的profile是定义在Maven安装目录下的“conf/settings.xml”文件中的。

3、配置动态打包

–配置profile

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <filters>
                    <filter>src/main/resources/profile/dev.properties</filter>
                </filters>
            </build>
        </profile>
        <profile>
            <id>test</id>
            <build>
                <filters>
                    <filter>src/main/resources/profile/test.properties</filter>
                </filters>
            </build>
        </profile>
    </profiles>

这里配置了两个环境的配置文件,默认使用dev环境,activeByDefault=true。

–配置build插件资源

<resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- maven profile 打包 -->
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>utf-8</encoding>
                    <useDefaultDelimiters>true</useDefaultDelimiters>
                </configuration>
            </plugin>

            <!-- 打包排除部分文件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/profile/*</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>

配置到这里就可以实现动态加载配置文件了,只要启用对应的配置文件,打包就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Maven是一个流行的Java项目构建系统。目前,绝大多数开发人员都把Ant当作Java编程项目的标准构建工具。遗憾的是,Ant的项目管理工具(作为make的替代工具)不能满足绝大多数开发人员的需要。通过检查Ant构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。 Maven除了以程序构建能力为特色之外,还提供Ant所缺少的高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的项目,而使用Ant则需要十几行。事实上,由于Maven的面向项目的方法,许多Apache Jakarta项目现在使用Maven,而且公司项目采用Maven的比例在持续增长。 Maven的主要功能: 1、遵循最佳实践的简单项目设置-数秒内即可启动新项目或模块。 2、所有项目的用法一致-意味着新开发人员无需花更多时间来参与项目。 3、高级依赖性管理,包括自动更新,依赖性关闭(也称为传递依赖性)。 4、能够轻松同时处理多个项目。 5、开箱即用的庞大且不断增长的库和元数据存储库,以及与大型开放源代码项目的安排,可实时获取其最新版本。 6、可扩展,能够轻松用 Java或脚本语言编写插件。 7、几乎无需额外配置即可立即访问新功能。 8、用于Maven之外的依赖项管理和部署的Ant任务。 9、基于模型的构建Maven能够将任何数量的项目构建为预定义的输出类型,例如JAR,WAR或基于有关该项目的元数据的分发,而在大多数情况下无需执行任何脚本。 10、项目信息的一致站点:使用构建过程相同的元数据,Maven能够生成一个网站或PDF,其中包括您愿意添加的任何文档,并将有关项目开发状态的标准报告添加到该标准报告中。该信息的示例可在本网站左侧导航的底部的“项目信息”和“项目报告”子菜单下看到。 11、发布管理和发行发布:无需太多额外配置,Maven将与您的源代码控制系统(例如Subversion或Git)集成,并基于特定标签管理项目的发布。它还可以将其发布到分发位置,以供其他项目使用Maven能够发布单个输出,例如JAR,包含其他依赖项和文档的存档或作为源分发。 12、依赖性管理:Maven鼓励使用JAR和其他依赖性中央存储库。Maven带有一种机制,您的项目的客户端可以使用该机制从中央JAR存储库中下载构建项目所需的任何JAR,就像Perl的CPAN一样。这使Maven的用户可以在项目之间重用JAR,并鼓励项目之间进行通信,以确保解决向后兼容性问题。
Maven是一种项目管理工具,可以简化项目构建过程。Maven通过项目对象模型(POM)文件来描述项目结构和依赖关系。在Maven中,我们可以使用插件(Plugin)来扩展其功能。 构建一个三级项目可以使用Maven的PL(maven pl)插件来实现。首先,我们需要在POM文件中定义项目的结构。一个三级项目通常由一个父项目和多个子项目组成。父项目可以作为总体管理者,定义子项目的依赖关系和构建配置。 在父项目的POM文件中,我们可以使用PL插件来创建和管理子项目。通过在POM文件中指定子项目的模块(modules),PL插件可以自动构建这些子项目。 在每个子项目的POM文件中,我们可以定义项目的具体构建配置和依赖关系。通过父项目的POM文件,子项目可以继承一些通用的配置,如插件版本和源代码目录结构等。 使用PL插件构建三级项目可以带来一些好处。首先,父项目可以统一管理子项目的依赖关系,减少重复配置。其次,PL插件可以按照指定的顺序对子项目进行构建,确保构建的正确性和一致性。此外,PL插件还提供了一些常用的命令,如编译、测试和打包等,方便快捷。 总之,Maven的PL插件可以帮助我们方便地构建三级项目。通过适当的配置和调用插件命令,我们可以实现整个项目自动构建过程,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小老虎Love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值