ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

构建配置文件的建立

2019-03-03 14:49:52  阅读:228  来源: 互联网

标签:xml 配置文件 建立 Maven 构建 test 激活


Update time:2019-3-3 Author:要你命三千又三千 type:学习笔记

文章目录

Maven灵活的构建方式

Maven为了支持灵活的构建方式提供了以下三个特性

  • Maven属性
  • Profile(配置文件)
  • 资源过滤

1. Maven属性

Maven通过提供六类Maven属性,实现灵活的构建

  • Maven内置属性
    常用的属性举例

${basedir} 项目的根目录
${version}项目的版本

  • POM类属性
    在这里插入图片描述
    在这里插入图片描述
    说明这些属性值都是在超级POM中定义过,我们可以重新定义,亦可以直接引用。
    POM中自定义属性
    在这里插入图片描述
    其他几类属性
    在这里插入图片描述

2.什么是构建配置文件?

构建配置文件(A Build profile) 是一系列的配置项的值

作用:可以用来设置或者覆盖Maven构建默认值。

使用构建配置文件,你可以为不同的环境,比如说生产环境和开发环境,定制构建方式。

配置文件在pom.xml文件中使用activeProfiles或者profiles元素指定,并且可以通过各种方式触发。配置文件在构建时修改POM,并且用来给参数设定不同的目标环境(比如说,开发、测试和生产环境中数据库服务器的地址)。
构建配置文件的类型

1.配置文件举例

他可以定义在你以下三个位置,对应三种类型。
构建配置文件大体上有三种类型

注解:Maven 2中也有在项目中的profile.xml 文件,然后使用资源过滤进行解析此文件,Maven 3已经废除。

类型 在哪定义
项目级(Per Project) 定义在项目的POM文件pom.xml中
用户级 (Per User) 定义在Maven的设置xml文件中 (%USER_HOME%/.m2/settings.xml)
全局(Global) 定义在Maven全局的设置xml文件中 (%M2_HOME%/conf/settings.xml)

说明:由于非POM的配置文件,不被打包到项目中,所以POM的project可以配置很少属性。

 <profiles>
      <profile>
          <id>test</id>
          <activation><!--这里配置了系统属性的激活方式,当运行是系统的env属性为test运行次配置文件-->
            <property>
               <name>env</name>
               <value>test</value>
            </property>
          </activation>
          <build>
              <plugins>
                 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                    <executions>
                       <execution>
                          <phase>test</phase>
                          <goals>
                             <goal>run</goal>
                          </goals>
                          <configuration>
                          <tasks>
                             <echo>Using env.test.properties</echo>
                             <copy file="src/main/resources/env.test.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
                          </tasks>
                          </configuration>
                       </execution>
                    </executions>
                 </plugin>
              </plugins>
          </build>
      </profile>

命令行激活方式

mvn test -Ptest
在这里插入图片描述

配置文件激活

Maven的构建配置文件可以通过多种方式激活。

  • 使用命令控制台输入显式激活。
  • 通过maven设置。
    1. 基于环境变量(用户或者系统变量)。
    2. 操作系统设置(比如说,Windows系列)。
    3. 文件的存在或者缺失。
      实例:

具体操作方法:

profile 可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个 profile,然后每个 profile 对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

通过环境变量激活

mvn test -Denv=test
提示 1:上面使用 -D 传递环境变量,其中 evn 对应刚才设置的 < name> 值,test 对应< value>。


## 通过操作系统激活配置文件
activation 元素包含下面的操作系统信息。当系统为 windows XP 时,test Profile 将会被触发。
```xml
<profile>
   <id>test</id>
   <activation> <!--在profile中添加激活条件,activation,操作系统类型-->
      <os>
         <name>Windows XP</name>
         <family>Windows</family>
         <arch>x86</arch>
         <version>5.1.2600</version>
      </os>
   </activation>
</profile>

现在打开命令控制台,跳转到 pom.xml 所在目录,并执行下面的 mvn 命令。不要使用 -P 选项指定 Profile 的名称。Maven 将显示被激活的 test Profile 的结果

mvn test

通过文件的存在或者缺失激活配置文件

现在使用 activation 元素包含下面的操作系统信息。当 target/generated-sources/axistools/wsdl2java/com/companyname/group 缺失时,test Profile 将会被触发。

<profile>
   <id>test</id>
   <activation><!--激活方式是文件确实就使用此文件-->
      <file>
         <missing>target/generated-sources/axistools/wsdl2java/
         com/companyname/group</missing>
      </file>
   </activation>
</profile>

现在打开命令控制台,跳转到 pom.xml 所在目录,并执行下面的 mvn 命令。不要使用 -P 选项指定 Profile 的名称。Maven 将显示被激活的 test Profile 的结果。

mvn test

具体的参考文章

参考文章:http://www.runoob.com/maven/maven-build-profiles.html
参考文章:Maven实战第十四章,灵活的构建。

标签:xml,配置文件,建立,Maven,构建,test,激活
来源: https://blog.csdn.net/qq_35495763/article/details/87896230

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有