maven多profile 打包下 -P参和-D参数的实现

P代表(Profiles配置文件)

在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。

假如pom.xml如下

<profiles>
   <profile>
     <id>prod</id>
     ...
   </profile>
   <profile>
     <id>test</id>
     ...
   </profile>
  </profiles>

打包时执行mvn clean package -P test将触发test环境的profile配置

如果pom.xml如下

<profile>
  <id>test</id>
  <activation>
   <property>
     <name>env</name>
     <value>test</value>
   </property>
  </activation>
  <id>prod</id>
   <property>
     <name>env</name>
     <value>prod</value>
   </property>
  </id>
</profile>

打包时执行mvn clean package -P prod将触发prod环境的profile配置

-D代表(Properties属性)

假如pom.xml如下:

<properties>
  <attr>defaultattr</attr>
</properties>

执行mvn -Dattr=newattr clean package,则pom.xml内attr的实际值将被替换成newattr

命令行:

mvn -DpropertyName=propertyValue clean package 

如果propertyName不存在pom.xml,它将被设置。
 如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D。
 如果要发送多个变量,请使用多个空格分隔符加-D:

mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package

到此这篇关于maven多profile 打包下 -P参和-D参数的实现的文章就介绍到这了,更多相关maven多profile 打包内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java随手笔记8之包、环境变量和访问控制及maven profile实现多环境打包

    一.java中的包 Java利用包来组织代码,一来使大型项目的代码结构清晰,二来包是一个命名空间的划分,即不同包中可以有相同名字的类,只需在在类名前加上包名即可区分它们. Package xxx 必须位于java文件除了注释以外的第一行,用来指明当前文件中的类属于哪一个包,如果没有package语句,则该文件中的类都属于默认包. Import xxx用来在当前java文件中导入不属于当前包中的类,从而可以在当前文件中使用它们. 二.java中的环境变量 1.path 环境变量其实就是一组变量(废

  • 使用maven profile指定配置文件打包适用多环境的方法

    开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件. 如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目. 1.新建maven项目,   在pom.xml中添加 profile节点信息如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <envi

  • maven多profile 打包下 -P参和-D参数的实现

    P代表(Profiles配置文件) 在<profiles>指定的<id>中,可以通过-P进行传递或者赋值. 假如pom.xml如下 <profiles> <profile> <id>prod</id> ... </profile> <profile> <id>test</id> ... </profile> </profiles> 打包时执行mvn clean p

  • 详解Maven多模块打包遇到的问题解决方法

    项目描述: springboot+springcloud+zookeeper+eureka+maven:为多模块多module的分布式架构: 项目目录结构如下 父工程为server工程,其中有多个子module工程: 1.独立子工程:db.model.quartz.redis.util.basecontroller: 2.独立功能模块:dao.service.controller: 其中dao.service.controller分别依赖db.model.quartz.redis.util.ba

  • Maven 命令行打包 和 pom.xml的常用配置详解

    maven 命令行打包 mvn -v, --show-version 现在最新的maven版本是 3.6,我这里用的还是 2017 年下载的 3.1.1 版本(虽然有点过时,但是大版本不变,指令基本一样) mvn -h, --help 使用 help 命令可以看到 maven 命令的帮助文档,下面主要介绍两个常用的指令 -- D 和 P. mvn -D, --define <arg> mvn -DpropertyName=propertyValue clean package 可以用来临时定义

  • 使用maven的profile构建不同环境配置的方法

    最近使用到了maven的profile功能,发现这个功能的确很好用也很实用,这块的知识比较多也比较乱,其实真正理解了之后非常简单,为了巩固总结知识,有个更清晰的知识体系,本文诞生了,希望能让像我一样零基础的小白一看就懂,有请戏精,闪亮登场~~ 1.背景 作为一名猿,在实际的项目开发中,通常会有很多配置环境,比如最基本的:开发.测试.生产:不同的环境,某些文件的配置是不一样的(如:数据库连接信息.properties文件的配置等),如果我们进行开发or测试时每次都得手动去修改配置文件,难免有些麻烦

  • Jenkins配置maven项目之打包、部署、发布的全过程

    Jenkins和项目在两台服务器上 Jenkins的下载安装部署省略,可自行上官网. 1.安装maven插件 完成后,会出现“success”,并且勾选“安装完成后重启Jenkins(空闲时)” 2.部署有Jenkins的服务器上,下载maven,配置环境变量,我在opt/目录下放着. 执行命令: 下载: wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.g

  • maven将项目打包上传到nexus私服的详细教程

    1.pom.xml文件添加distributionManagement节点. 模块项目中如果存在父子项目,且父子项目的jar包都需要上传到私服的话,直接在父项目pom文件中添加这段配置,如果只需要将子项目jar包上传私服,则在子项目的build标签同级添加这段配置. <!-- 使用分发管理将本项目打成jar包,直接上传到指定服务器 --> <distributionManagement> <!--正式版本--> <repository> <!-- ne

  • Maven 多profile及指定编译问题的解决

    目录 Maven 多profile及指定编译 要点 实例 Maven 指定编译版本 javac maven Maven 多profile及指定编译 要点 项目A依赖项目B,项目A.B都有对应的多个profile,通过mvn –P参数指定profile,只对A生效,对B不生效 项目A.B模块位于同一父项目,父项目构建时指定profile,可以传给A,B项目,A.B都使用同一指定的profile. 也可在父项目中定义属性,激活子项目profile,意即父项目 profile属性可传给各个子项目. 项

  • vue2 router 动态传参,多个参数的实例

    这个是用vue-cli生成的项目下使用 比如有个路由跳转时需要带两个参数: <router-link to='/tr'>查看</router-link> 可以这样写: <router-link to='/tr/uid/pid'>查看</router-link> 然后去router.js 中 处理这个路由: import Vue from 'vue' import Router from 'vue-router' import tr from '@/compo

  • shell传参并将参数传递给sql文件的方法

    如下所示: 调用代码:   sh /tmp/t.sh 20160808 echo $1 cat /tmp/t.sql | sed '$s/ssssss/'$1'/g' | mysql -t -u loader -ploader.1 -h 10.18.141.53 dxsvr echo "mysql done" 以上这篇shell传参并将参数传递给sql文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • pyMySQL SQL语句传参问题,单个参数或多个参数说明

    在用pymysql操作数据库的过程中,给sql语句传参碰到了很多问题,网上传参策略很多,这里推荐两种 单个传参用%s,写起来比较简单: field = '-' sql_talk="UPDATE cnp.Test set a='' where b='%s'" cursor.execute(sql_talk % field) db.commit() 多个传参用{0}占位符: field = '-' a = 'code' sql_talk="UPDATE cnp.Test set

随机推荐