pom.xml里加入下面内容:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>${basedir}/src/test/resources</directory>
</testResource>
</testResources>
</build>
maven-resources-plugin,官网介绍地址http://maven.apache.org/plugins/maven-resources-plugin/,从2.3版本开始引入过滤机制。
http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html 这个网址具体介绍Filtering功能。
其中本例子中useDefaultDelimiters设置为false,不使用默认配置。当然也可以使用,默认的如下:(详情请看这个网址:http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html)
Set of delimiters for expressions to filter within the resources.
These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.
So, the default filtering delimiters might be specified as:
<delimiters>
<delimiter>${*}</delimiter>
<delimiter>@</delimiter>
</delimiters>
Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).
设置prorfiles,四个profile,默认激活dev。
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>../${project.parent.artifactId}/vars/vars.dev.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>sit</id>
<build>
<filters>
<filter>../${project.parent.artifactId}/vars/vars.sit.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>pre</id>
<build>
<filters>
<filter>../${project.parent.artifactId}/vars/vars.pre.properties</filter>
</filters>
</build>
</profile>
<profile>
<id>prod</id>
<build>
<filters>
<filter>../${project.parent.artifactId}/vars/vars.prod.properties</filter>
</filters>
</build>
</profile>
</profiles>
文件目录如图:
var.dev.properties文件为过滤文件,为普通的Property文件,里面是一些key、value值。下面是个demo
envName=dev
hostName=192.168.0.1
port=80
url=http://www.test.com
如项目中还有其他的一些配置文件,可以把变量的赋值放在var.dev.properties等文件中。比如项目中还有其他的xml文件和properties文件,只需在这些文件中作如下引用。
demo.properties
hostName=$[hostName]
testUrl=$[url]
env=$[envName]
这样即可通过
$[]占位符(在上面通过pom文件配置)引用到var.dev.properties等过滤文件的内容。xml中引用过滤文件的属性,亦是如此。
最后就是通过maven打包了,激活对应的profile。如下:
dev打包命令: mvn clean install -Pdev 或 clean install (默认是dev)
sit打包命令: mvn clean install -Psit
pre打包命令: mvn clean install -Ppre
prod打包命令: mvn clean install -Pprod
- 大小: 2.7 KB
分享到:
相关推荐
工程运行环境有研发,测试和生产,不同的运行环境配置不同,maven 打包时指定文件目录,使用指定的文件夹下的配置文件。
工程运行环境有研发,测试和生产,不同的运行环境配置不同,使用maven 占位符,不同环境使用不同的配置
第13章:使用Maven生成项目原型/13.2 编写自己的项目原型/13.2.6 按照项目原型生成Maven工程 第14章:灵活的构建/14.1 Maven的属性/14.1.1 概念 第14章:灵活的构建/14.1 Maven的属性/14.1.2 属性分类/14.1.2.1 内置...
maven项目、springboot项目使用assembly插件打包,实现项目可配置化、生成系统日志、jar文件与项目分离,并生成windows与linux环境下启动、停止等操作的脚本文件。
无论是初学者还是有经验的开发者,都可以使用该资源来快速搭建和管理 Maven 环境。 使用场景和目标: 通过安装 Maven 3.6.1,您可以在 Windows 系统上实现以下目标和应用场景: 管理项目依赖:使用 Maven 可以轻松...
在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。 • src/test/resources,负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个...
如果找不到凭据,Azure Maven插件将使用Maven插件为Azure帐户提供的第三种方法(例如OAuth或DeviceLogin)自动登录。 AuthType(自Web App 1.9.0起) 您可以指定在Maven配置中使用哪种身份验证方法,默认值为auto...
-工程组号- -通用前置接口号- -版本号- -打包文件前置.xml- -全局属性配置- -NJCC开发环境(MySQL)- -部署环境(对应配置文件版本)- -设置默认环境- -NJCC开发环境(Oracle)- -部署环境(对应配置文件版本)- -配置...
通过maven搭建dubbo环境,包括生产者和消费者以及公共模块,配置模块等,Dubbo视频教程--基础篇--第07节--使用Maven构建Dubbo服务的可执行jar包.pdf,maven和dubbo..zip源码工程
sql完整输出,excel报表导出,外加线程号 方便查询从请求到响应所有日志可以根据线程号一次性获得,主要为了方便查询日志,项目骨架也支持扩展,maven打包是自动替换配置文件,可以在不同的测试环境,生产环境,准...
本系统使用JAVA进行开发,基于spring-cloud进行系统搭建,使用maven进行构建工程。 环境准备 JDK1.8 mysql数据库,用于存储业务信息 redis数据库,用于处理用户登录会话信息 mongodb数据库,用于存储币币K线数据 安装...
安装maven环境,通过docker命令打包镜像,然后编写docker-compose编排文件,部署springboot工程
项目基于maven的多profile环境配置,打包时需要选择(test/pro/dev)打包运行的环境。 **项目特点** - 友好的代码结构及注释,便于阅读及二次开发 。 - 前端页面采用jsp+freemaker,多视图解析处理,优先jsp。 - 采用...
1)Maven统一工程管理 2)Maven统一管理多环境配置文件 3)Maven统一打包
同时可以解决开发人员环境不一致问题打包接入CI/CD,简化流程开发和打包时最好无需改动Flutter工程参考了一些例子,使用fat-aar的方式,将flutter工程中android项目从application改为library,需要
在Nacos2.2的发布包环境下,下载当前插件项目源码,打包为jar包,将该文件放到nacos主目录下的plugins文件夹中,默认会使用Nacos的loader.path机制指定该插件的路径,打包插件可选择nacos-postgresql-datasource-...
支持maven插件,添加插件后在打包过程中自动加密。支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。环境依赖:JDK 1.8 +本工具使用AES算法加密class文件,密码是保证不被破解的关键,请保存好密码,请勿泄漏。密码...
本系统后台为基于java开发的ssm项目,使用java脚手架springboot,项目管理工具maven。在项目目录下运行maven build指令,指令执行完毕后会在项目目录下的target目录下生成后台项目的jar包,将该jar包上传至服务器/...
编码为utf-8,导入 javachina.sql导入maven工程或者使用 war:war 命令打包一个war包启动tomcat,访问 http://127.0.0.1:8080/java-china配置 [blade.properties]blade.dev:是否是开发者模式(生产环境建议关闭)...
Maven工程, IDE:IDEA MySQL: 5.7 Redis: 5.0.4 如果需要使用离线推送服务,需要在个推开通推送服务,然后更新配置文件中与个推相关的配置信息 打包部署与运行 执行mvn clean package,在target目录中将生成im-...