maven+eslipse 多环境打包 profiles
来源:互联网 发布:日照淘宝代运营 编辑:程序博客网 时间:2024/05/01 16:13
我们经常需求对不同的环境打不同的包
比如,测试环境包,线上环境包
这意味着不同的环境,配置参数不同,同时我们还想对打包的包名进行个性化命名
所以我们就逐步讲解利用maven进行这种需求的打包
1.pom.xml的profile配置 :位置在project下面
- <project>
- <profiles>
- <profile>
- <id>test</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <properties>
- <!-- mysql -->
- <p.jdbc.url>127.0.0.1:3306</p.jdbc.url>
- <p.jdbc.dbname>test_trunk</p.jdbc.dbname>
- <p.jdbc.username>root</p.jdbc.username>
- <p.jdbc.password>123456</p.jdbc.password>
- <!--包名后缀-->
- <p.package.suffix>test</p.package.suffix>
- </properties>
- </profile>
- <profile>
- <id>production</id>
- <properties>
- <!-- mysql -->
- <p.jdbc.url>10.5.121.186:23325</p.jdbc.url>
- <p.jdbc.dbname>db_prod</p.jdbc.dbname>
- <p.jdbc.username>root</p.jdbc.username>
- <p.jdbc.password>root</p.jdbc.password>
- <!--包名后缀-->
- <p.package.suffix>prod</p.package.suffix>
- </properties>
- </profile>
- </profiles>
- </project>
上面的配置是对不同环境数据库的配置,以及包名后缀进行了属性配置,并且对打包的输出包名的后缀进行了个性化的配置。
2. 对于profile标签,我们还需要有个.properties文件,持有这些变量,例如:config.properties
- jdbc.driverClassName=com.mysql.jdbc.Driver
- jdbc.url=jdbc\:mysql\://${p.jdbc.url}/${p.jdbc.dbname}?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNull&rewriteBatchedStatements\=true
- jdbc.username=${p.jdbc.username}
- jdbc.password=${p.jdbc.password}
3. 对config.properties文件打包时替换成配置值 注意: 必须有filtering
红色部分加上,否则会出现配置文件没有打包进去
<build>
<resources>
<resource>
<directory>src/main/resources/conf</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources/conf</directory>
<includes>
<include>config.properties</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
4. 打包
mvn clean package -p production
结果:config.properties中${}值替换成 profile中的属性值
5. 可以将profile中的属性值放在一个文件中 过滤文件(separatefile)
- <project>
- <profiles>
- <profile>
- <id>kaifa</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <build>
- <filters>
- <filter>${basedir}/filters/kaifa/param.txt</filter>
- </filters>
- </build>
- </profile>
- <profile>
- <id>shengchan</id>
- <build>
- <filters>
- <filter>${basedir}/filters/shengchan/param.txt</filter>
- </filters>
- </build>
- </profile>
- </profiles>
- <build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>db.proerties</include>
</includes>
</resource>
</resources>
- </build>
- </project>
param.txt:
name=world
还可以这样子哦:
- <project>
- <profiles>
- <profile>
- <id>kaifa</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <build>
- <properties>
- <filters.env>kaifa</filters.env>
- </properties>
- </build>
- </profile>
- <profile>
- <id>shengchan</id>
- <build>
-
- <properties>
- <filters.env>shengchan</filters.env>
- </properties>
- </build>
- </profile>
- </profiles>
- <build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>db.proerties</include>
</includes>
</resource>
</resources>
- <filters>
- <filter>${basedir}/filters/${filters.env}/param.txt</filter>
- </filters>
- </build>
- </project>
举例:
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- ......
- <profiles>
- <profile>
- <id>dev</id>
- <properties>
- <env>dev</env>
- </properties>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- </profile>
- <profile>
- <id>qa</id>
- <properties>
- <env>qa</env>
- </properties>
- </profile>
- <profile>
- <id>pre</id>
- <properties>
- <env>pre</env>
- </properties>
- </profile>
- <profile>
- <id>prod</id>
- <properties>
- <env>prod</env>
- </properties>
- </profile>
- </profiles>
- ......
- <build>
- <filters>
- <filter>config/${env}.properties</filter>
- </filters>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- ......
- </build>
- </project>
- maven+eslipse 多环境打包 profiles
- Maven 使用profiles filters resources build 打包不同配置开发环境及打包
- 【maven】5、Maven 多环境部署(filters、resources、profiles)
- 配置maven环境以及eslipse的一些配置
- maven 多环境打包
- maven多环境打包
- maven集成eclipse根据resources profiles filtering进行不同环境打包部署
- ssm中maven中profiles多环境配置
- 关于maven中profiles多环境的配置
- Maven-多环境打包配置
- maven+myeslipse 多环境打包
- maven多环境打包配置
- Maven Profile多环境打包
- maven—profiles区分环境的配置文件
- maven profiles
- maven profiles
- maven profiles
- maven profiles
- Spring @Transactional
- CAS+SSO原理浅谈
- UIGravityBehavior的属性关系
- apt-get: Could not resolve 'archive.ubuntu.com'
- Android 系统快捷开关
- maven+eslipse 多环境打包 profiles
- html5表单验证
- 6. ZigZag Conversion
- C/C++小知识总结之五
- Burp Suite使用介绍——Proxy功能(四)
- NSUserDefaults standardUserDefaults的使用
- java实现简单的单点登录
- C# Winform下载文件并显示进度条
- Android开发中无处不在的设计模式——单例模式