一个项目里总会有很多配置文件。而且一般都会有多套环境。开发的、测试的、正式的。而在这些不同的环境这些配置的值都会不一样。比如mail的配置、服务的url配置这些都是很常见的。所以在打包的时候就要根据environment来选不同的值或者配置文件。

比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。

|-- resources
|   |-- dev | |-- product | |-- qa | `-- qa53

以前用ant的时候打包的时候处理就比较方便。打包前copy一下对应目录下的配置文件覆盖target下的那些文件再打包就可以了。在刚开始用maven的时候就想要怎么解决,一直没有找到ant的这种方式的可行的办法。其实主要是按ant这种处理方法去思考了。只去想没有有cp这种target。其实在maven里用profile就可以解决了。对于不同的environment定义不同的profile就ok了,目录结构还是沿用原来的就可以。

在pom.xml里定义一个变量

    <properties>......<package.environment>qa53</package.environment> </properties>

这里定义的值是经常打包的一个profile,方便少敲点代码。然后定义一些profile

    <profiles><profile> <id>product</id> <properties> <package.environment>product</package.environment> </properties> </profile> <profile> <id>dev</id> <properties> <package.environment>dev</package.environment> </properties> </profile> <profile> <id>qa</id> <properties> <package.environment>qa</package.environment> </properties> </profile> </profiles>

最后再修改一下打包的plugin,引用这个变量。

            <plugin><groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> <webResources> <resource> <!-- this is relative to the pom.xml directory --> <directory>src/main/resources/${package.environment}</directory> <targetPath>WEB-INF/classes</targetPath> <filtering>true</filtering> </resource> </webResources> </configuration> </plugin>

这里注意一个参数<filtering>true</filtering>,一定要设置成true这样才会用对应environment目录下的配置文件覆盖原来的。ok。mvn package的时候就会用默认的qa53目录下的配置文件。如果要发布正式环境的包就运行。mvn -Pproduct package

maven里如何根据不同的environment打包相关推荐

  1. 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包

    参照<maven实战>在本地创建对应的基本项目helloworld,在本地完成后项目结构如下: 可以看到maven项目的骨架: src/main/java(javaz主代码) src/te ...

  2. 在IDEA新建了个moudle,但maven里该moudle名显示为灰色

    问题背景:新建moudle后重命名了一下,勾选了图中选项(不知道那个选项是干什么的,本着重命名要彻底的习惯就选了它) 建好后Maven里moudle名就成了灰色的了,然后导致各种错误 解决方案:将图中 ...

  3. Maven引入本地jar包,解决打包时找不到本地jar包

    springboot,maven引入本地jar,生成pdf使用,找不到类问题 参考:Maven引入本地jar包,解决打包时找不到本地jar包 日志 Caused by: java.lang.NoCla ...

  4. 使用maven下载jar包,使用ant打包。yqxt项目的安装。

    茅坑的石头 2010-1-31 11:43:25 /simplejee/src/com/yuqiaotech/simplejee/javase/reflect/ReflectSample.java 茅 ...

  5. Maven之——使用本地jar包并打包进war包里面的方法

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/52594602 很显然,这种方法是很不可取的,因为Maven是用来团队合作,以及发布 ...

  6. Linux下Maven编译工具的安装配置与打包

    Maven介绍  Maven是意第绪语,意思是"知识的积累者",最初是为了简化Jakarta Turbine项目中的构建过程.有几个项目,每个项目都有自己的Ant构建文件,所有项目 ...

  7. 在 命令行 (cmd)执行 Maven命令,对java工程进行打包 操作 (指定settings.xml)

    目录 ■前提理解 ■扩展 1.使用纯命令行,java命令进行打包 2.pom.properties 3.在Eclipse中,[実行構成]创建文件(.launch),保存每次执行的Maven命令. ■命 ...

  8. maven小节,Nexus私服,构件打包发布,动态资源过滤,自动部署到本地或远程服务器...

    为什么80%的码农都做不了架构师?>>>    阅读此文的前提,对Maven 有一定了解,熟悉pom文件基础 1:Nexus 建立私服 去下载nexus的war包格式的,最新版本的要 ...

  9. uglifyjs报错 webpack_webpack3里使用uglifyjs压缩js时打包报错的解决

    环境:webpac<4的下,安装uglifyjs.cnpm install uglifyjs-webpack-plugin -D 安装完毕后,去npm里查看uglifyjs的使用方法并添加到代码 ...

最新文章

  1. 几个有趣的名词--语法糖、语法盐等
  2. 检测线程是否存活代码!
  3. c/s 自动升级(WebService)
  4. endnote 插入文献总变成乱码_维普文献导入Endnote中的乱码问题
  5. html后台数据分类管理,细分数据.html
  6. Ubuntu下Memcache的安装与基本使用
  7. TypeError: Data must not be unicode
  8. 随想录(谈谈软件架构)
  9. centos服务端ftp的搭建_centos下搭建ftp服务器
  10. 递归法:求n个元素的全排列
  11. 使用valgrind检查内存越界
  12. 智能卡检测控制系统检测m1这么操作_多联机制冷剂灌注操作方法
  13. 安卓源码下载的环境搭建
  14. 图神经网络/GCN 入门
  15. 低级鼠标钩子WH MOUSE LL
  16. 2022年国内短信平台大全
  17. 理解serialVersionUID是什么?有什么用?如何生成?
  18. Seek the Name, Seek the Fame POJ - 2752(KMP和hah两种方法求公共前后缀)
  19. 数据防泄密软件可以解决哪些安全问题?
  20. 仰望星星的孩子-2014年终总结

热门文章

  1. Qt Creator优化移动设备的应用程序
  2. OpenGL ktxview (KTX查看器)的实例
  3. QT的QPlaceContent类的使用
  4. C语言SIX/NINE问题
  5. C++ namespace 命名空间
  6. 家庭财务管理系统_我31岁,30天整理出这些财务笔记干货,从宝妈成功逆袭成为会计...
  7. 登陆用友服务器超时未响应,用友T3软件10.8plus1普及版服务器提示“客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录”?-用友T3...
  8. Flink-Table StreamTableEnvironment基础知识
  9. ES分布式机制的透明性,垂直扩容和水平扩容,数据rebalance,master节点,节点平等的分布式架构,shard和replica机制(学习)
  10. Rational rose中实心菱形的画法