首页 > 作文

maven的pom.xml中profiles的作用详解

更新时间:2023-04-04 05:06:02 阅读: 评论:0

目录
1、profiles是什么?有什么作用2、如何配置3、区别构建发布包maven多环境profiles参数切换项目结构图

1、profiles是什么?有什么作用

在maven构建的项目都存在一个pom.xml的项目对象模型配置文件,用于约束项目(如:jar包管理、构建管理等)。profiles是pom.xml中的一个配置项。

我们在开发项目时一般都会区分线上环境和测试环境,这两个环境需要切换以适应不同的环境需求

正式环境的配置,一般放置于src/main/resources下,而测试环境放置于/src/test/resources下面。

profile的主要作用就是区分正式环境和测试环境的配置

2、如何配置

<profiles>    <profile>        <id>relea</id>        <build>            <resources>                <resource>                    <directory>src/main/resources</directory>                    <incl学而udes>                        <include>**/*</include>                    </includes>                </resource>            </resources>        </build>    </profile>        <profile>        <id>test</id>        <build>            <resources>                <resource>                    <directory>src/test/resources</directory>                    <includes>                        <include>config/*.properties</include>                        <include>log4j.xml</include>                    </includes>                </resource>                <resource>                    <directory>src/main/resources</directory>                    <includes>                        <include>**/*.xml</include>                    </includes>                    <excludes>                        <exclude>log4j.xml</exclude>                    </excludes>                </resource>            </resources>        </build><activation>                <activebydefault>true</a北大和清华的差距ctivebydefault>      高中补课有用吗     </activation>    </profile></profiles>

如上, 我配置了两个profile一个relea用于正式环境发布,test用于测试环境使用;默认开启测试环境,activation->true

测试环境与正式环境只是部分的配置不同,我们需要公用这部分配置。这就使用到了includes and excludes,用引入和排除配置文件

3、区别构建发布包

构建测试包:

maven package -p test -dmaven.test.skip=true

构建正式包:

maven package -p relea -dmaven.test.skip=true

maven多环境profiles参数切换

在实际开发项目中,常常有几种环境,一般情况下最少有三种环境:开发、测试、正式,各个环境之间的参数也各不相同,

于是在环境切换时我们需要修改为各环境需要的参数,就此我们可以通过maven的配置在切换环境是简化这一步骤.

项目结构图

src/main/resources/dev 目录是开发环境的配置项目

src/main/resources/test 目录是测试环境的配置项目

在pom.xml定义环境的profile

<profiles><profile><id>dev</id><activation><activebydefault>true</activebydefault></activation><properties><project.active>dev</project.active></properties></profile><profile><id>test</id><properties><project.active>test</project.active></proy的导数perties></profile></profiles>

activebydefault标签的值为true的话表示为默认的profile,使用mvn install命令起作用的就是默认的 profiles.activation为我们配置激活的profile

<build><finalname>springmvc_spring_mybatis</finalname><resources><resource><directory>${badir}/src/main/resources</directory><includes><include>message.properties</include><include>${project.active}/**</include></includes></resource><resource><directory>${badir}/src/main/resources</directory><excludes><exclude>db.properties</exclude><exclude>ur.properties</exclude><exclude>message.properties</exclude><exclude>**/**</exclude></excludes></resource></resources><plugins><plugin><groupid>org.apache.tomcat.maven</groupid><artifactid>tomcat7-maven-plugin</artifactid><version>2.2</version><configuration><uriencoding>utf-8</uriencoding><path>/</path><port>8088</port></configuration></plugin>choo的名词;</plugins></build>

在工程的${badir}/src/main/resource,目录下(badir指的是pom文件所在的目录)

<include>与<exclude>是用来圈定和排除某一文件目录下的文件是否是工程资源的,<include>中指定的为资源文件,其它的都不是,<exclude>中指定的除了这些都为资源文件,如果<include>与<exclude>划定的范围存在冲突时,以<exclude>划定的范围为准,当<include>与<exclude>指定了相同的文件时,它们是不会被排除的,如message.properties同时被<include>与<exclude>指定,但它们还是会被编译.

输入maven指令

mvn clean install -p test

编译结果如下图,只编译test环境需要的配置-p后面的test为我们所要激活的profile

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 05:06:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/4ededf68a2cf71bc2370c57f7223507b.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:maven的pom.xml中profiles的作用详解.doc

本文 PDF 下载地址:maven的pom.xml中profiles的作用详解.pdf

标签:环境   测试   项目   正式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图