Maven:灵活构建

本文深入探讨了Maven的构建灵活性,重点关注如何通过profiles、settings.xml以及activation条件来实现不同环境的构建配置。特别是当特定文件存在或不存在时,如何智能地激活相应配置进行构建。
摘要由CSDN通过智能技术生成
在项目开发中,我们会涉及到不同的环境,如开发、测试、集成和发布环境。因此在不同的环境上我们要灵活切换,如连接不同的数据库。Maven为了支持灵活的构建,内置了三大特性:属性、Profile和资源过滤。下面就结合不同版本jdk,不同环境数据进行介绍如何实现灵活的构建。
一、Maven属性
最常见的使用Maven属性的方式如下:
     1.通过<properties>元素用户可以定义一个或者多个属性;
     2.然后在POM的其它地方使用${属性名称}的方式引用属性;
<properties>
        <jdk.version>1.7</jdk.version>
</properties>
<profile>
     <properties>
          <maven.compiler.source>${jdk.version}</maven.compiler.source>
          <maven.compiler.target>${jdk.version}</maven.compiler.target>
          <maven.compiler.compilerVersion>${jdk.version}</maven.compiler.compilerVersion>
     </properties>
</profile>
使用Maven属性的意义 —消除重复!

Maven有6类属性

     1. 内置属性:主要两个常用内置属性:${basedir}项目根目录、${version}项目版本;
     2. POM属性:使用该类属性引用POM文件中对应元素的值,如:${project.artifactId}对应了<project><artifactId>元素的值;
     3. 自定义属性:如上示例,自定义属性:
          <properties>
               <my.prop>hello</my.prop>
          </properties>
          引用属性:${my.prop};
     4. Settings属性:以POM属性同理,开头属性引用settings.xml文件中的XML元素,如:${settings.localRepository}指向用户本地仓库的地址;
     5. Java系统属性:所有Java系统属性都可以使用Maven属性引用,如${user.home}指向用户目录;使用mvn help:system查看所有Java系统属性;
     6. 环境变量属性:所有环境变量都可以使用以env.开头的Maven属性引用,如${env.JAVA_HOME}JAVA_HOME环境变量,使用mvn help:system查看所有环境变量;
C:\Users\chengxiang.peng.QUNARSERVERS\QunarGitSources\phone_spider_project>mvn help:system
[INFO] Scanning for projects...
Downloading: http://l-digging7.wap.cn8.qunar.com:8086/content/repositories/thirdparty/org/apache/maven/plugins/maven-metadata.xml
... ...
======
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值