1. 程式人生 > >MAVEN實現多環境搭建

MAVEN實現多環境搭建

director arch 目錄 packaging res ring add build 故障排除

在實際的開發中,會遇到開發環境的不同(開發環境,測試環境,線上環境),會來回根據環境的不同修改配置文件,一不小心修改錯誤導致無法正常運行,故障排除導致開發效率低。使用maven可以根據環境的不同,自動生成需要的配置文件,減少因為配置文件配置錯誤導致的人為故障

實現環境:j2ee環境

技術分享

dev.properties配置文件的內容

db.username=name_dev
db.password=password_dev

local.properties配置文件的內容

db.username=name_local
db.password=password_local

config.properties配置文件的內容

db.username=${db.username}
db.password=${db.password}

pom.xml配置文件的內容

<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">
  <modelVersion>4.0.0</modelVersion
> <groupId>com.major</groupId> <artifactId>mavenTest</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>mavenTest Maven Webapp</name> <!-- 項目依賴包 --> <dependencies> <dependency>
<groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <!-- 項目配置文件 --> <profiles> <profile> <!-- 定義local配置文件 --> <id>local</id> <properties> <!-- 定義變量package.env為local,為後面調用 --> <package.dev>local</package.dev> </properties> </profile> <profile> <id>dev</id> <properties> <package.dev>dev</package.dev> </properties> </profile> </profiles> <!-- 打包配置 --> <build> <plugins> <!-- 配置打包插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <!-- 配置jdk版本 --> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!-- 配置war插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <archive> <addMavenDescriptor>false</addMavenDescriptor> </archive> <warName>${project.artifactId}</warName> <!-- 排除不需要的配置文件,如果不排除env目錄下的配置文件,會導致env目錄下的配置文件也會打包到war包中 --> <excludes>src/env</excludes> </configuration> </plugin> </plugins> <!-- 配置資源文件 --> <resources> <resource> <!-- 該資源目錄,其中${basedir}表示maven項目根目錄 --> <directory>${basedir}/src/main/resources</directory> <!-- 包含文件,如果不過濾文件,可以使用*代替所有 --> <includes> <include>config.properties</include> </includes> <!-- 是否對包括的文件進行過濾(就是使用配置文件中的內容替換改文件中的變量) --> <filtering>true</filtering> </resource> </resources> <!-- 配置文件過濾 --> <filters> <!-- 使用該配置文件內容替換資源文件,其中 ${package.dev}為上面定義的變量,如果選擇dev則為dev.properties中的內容來替換--> <filter> ${basedir}/src/env/${package.dev}.properties </filter> </filters> </build> </project>

MAVEN實現多環境搭建