maven 灵活构建

灵活构建
  项目的构建根据不同的情况可能需要有一定的差异,比如编译级别、依赖、打包的属性文件等在不同的运行环境中可能需要有不同的值。为了实现灵活构建,Maven内置了三个特性:

属性:在POM中通过${属性名称}引用构建时的属性值,从而达到灵活构建的目的,主要有六种属性,包括内置属性、POM属性、自定义属性、setting属性、Java系统属性、 环境变量属性。

属性替换可以在pom.xml和资源文件中使用,在资源文件中使用时需要开启资源文件过滤,pom.xml是默认开启的。可以使用的属性如下:

1.   内置属性:如¥{basedir}表示项目根目录,¥{version}表示项目版本

2.   POM属性:用户可以引用pom文件中对应的值。如:

${project.build.directory} 构建目录,缺省为target

${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes

${project.build.?nalName}
产出物名称,¥{project.artifactId}-¥{project.version}

${project.packaging} 打包类型,缺省为jar

${project.xxx} 当前pom文件的任意节点的内容

3.   自定义属性:用户可以在pom的元素下自定义maven属性。

4.  
setting属性:用户可以使用以settings开头的属性引用settings.xml中xml元素的值,如

${settings.localRepository}指向用户本地仓库的地址。

5.   java系统属性:maven可以使用当前java系统的属性,如${user.home}指向了用户目录。

6.   环境变量属性:所有环境变量都可以使用以env.开头的属性。如:${env.JAVA_HOE}。

pro?le:pro?le能够定义多个POM的子集,在构建的时候动态激活某个pro?le,从而修改POM。
资源过滤:资源过滤是指Maven对项目资源文件内容进行变量替换。在资源过滤被激活的时候,Maven会扫描资源,寻找由${}包围的Maven属性的引用。一旦找到这些引用,就会使用合适的值去替换它们.

案例1、灵活构建测试环境和开发环境,(前提需要开启资源文件过滤)

  <!-- 灵活构建 -->
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <jdbc.driverClassName>oracle.jdbc.driver.OracleDriver</jdbc.driverClassName>
        <jdbc.ur>jdbc:oracle:thin:@localhost:1521:XE</jdbc.ur>
        <jdbc.username>hr</jdbc.username>
        <jdbc.password>hr</jdbc.password>
        <project.build.sourceEncoding>gbk</project.build.sourceEncoding>
      </properties>
      <!-- 默认激活 -->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <jdbc.driverClassName>oracle.jdbc.driver.OracleDriver</jdbc.driverClassName>
        <jdbc.ur>jdbc:oracle:thin:@localhost:1521:XE</jdbc.ur>
        <jdbc.username>test</jdbc.username>
        <jdbc.password>test</jdbc.password>
        <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
      </properties>
    </profile>
  </profiles>
  <build>
  <!-- 插件配置 -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

案例2、如果属性过多,导致POM文件过大,(${profile.id}.properties 注意)

<!-- 灵活构建 -->
  <profiles>
    <profile>
      <id>dev</id>
      <properties>
        <profile.id>dev</profile.id>
      </properties>
      <!-- 默认激活 -->
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <profile.id>test</profile.id>
      </properties>
    </profile>
  </profiles>
<build>
  <!-- 插件配置 -->
    <filters>
      <filter>src/main/filters/${profile.id}.properties</filter>
    </filters>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

原文地址:https://www.cnblogs.com/wuhaidong/p/10600982.html

时间: 2024-10-21 12:13:41

maven 灵活构建的相关文章

Maven实战读书笔记(六):Maven灵活构建

Maven为了支持构建的灵活性,内置了3大特性,即:属性.Profile和资源过滤. 6.1 Maven属性 Maven的属性与Java代码的常量有异曲同工之妙,都是为了消除重复,对相关内容进行统一管理并且可以减少日后升级版本的工作量,降低错误发生的概率. 在POM文件中,可以通过${属性名称}的方式来引用属性. 在Maven中,存在6类属性,分别为: 1) 内置属性,主要有两个,分别为:${basedir}表示项目根目录,即POM文件所在的目录.${version}表示项目的版本. 2) PO

Maven学习(五):maven的灵活构建

一.实现资源过滤 (一)maven-resources-plugin 插件 1.Maven 区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件.默认的主资源文件目录是 src/main/resources. 2.很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现.实现资源的过滤只需要添加 <filtering>true<

maven 属性以及灵活构建

maven 属性 一种简单的 maven 属性的使用是: 123 <properties> <org.springframework.version>3.1.4.RELEASE</org.springframework.version></properties> 上面这种属性是 maven 的自定义属性. maven 有六种属性: 内置属性:主要两个内置属性,${basedir}表示项目根目录,即包含 pom.xml 文档的目录:${version} 标识项

SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务) + Quartz(定时调度)+ Lucene(搜索引擎) + HTML5 bootstrap + Maven项目构建绝对开源平台

框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC.IOS.Android) 需要源码请加Q:3121026417   此处[源码获取地址] 框架简介: 项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化.服务化.原子化的方案,将功能模块进行

Maven的构建/测试/打包

继上一篇http://www.cnblogs.com/EasonJim/p/6809882.html使用Maven创建工程后,接下来是使用Maven进行构建/测试/打包. 在打包之前,先熟悉一下Maven的常用命令,参考:http://www.cnblogs.com/EasonJim/p/6671338.html. 而构建/测试/打包需要用到如下命令: mvn clean--项目清理 mvn test--项目单元测试的编译 mvn compile--项目源代码的编译 mvn package--项

eclipse+maven+tomcat构建web工程

我们要利用Maven构建一个web应用,开发环境为eclipse+tomcat.构建过程如下: 1.工具准备 eclipse:版本为eclipse 4.2(Juno Service),maven插件的安装与配置参见"m2eclipse安装与配置" tomcat:版本为apache-tomcat-6.0.37(即tomcat6.x系列,本文安装在D:\work\tomcat6\apache-tomcat-6.0.37-maven) 2.建立web应用 我们使用eclipse建立maven

springmvc+spring+mybatis+maven项目构建

1.首先在myeclipse10中安装maven的插件,将插件放入D:\Program Files (x86)\myEclipse10\MyEclipse Blue Edition 10\dropins\maven中, 2. 新建文件:maven.link填入如下内容:path=D:/Program Files (x86)/myEclipse10/MyEclipse Blue Edition 10/dropins/maven 3.重启myeclipse插件安装成功. 4.在myeclipse10

Maven学习总结(二)——Maven项目构建过程练习

Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建立Hello项目 1.首先建立Hello项目,同时建立Maven约定的目录结构和pom.xml文件 Hello | --src | -----main | ----------java | ----------resources | -----test | ---------java | -----

Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)

转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平台(一) 最近在利用Jmeter来做一套自动化性能测试框架,做自动化性能测试框架的目的 是希望能够针对系统做一个benchmark的性能测试,能够快速的在每个版本发布后,对该版本进行benchmark性能测试,以比较与上一个版本的性 能是否发生变化,若发生变化便可以快速的通知开发人员以确定性能发生变