在使用maven的过程当中会发现一个问题,因为生产环境跟测试环境的配置不通,因此在分别打两个环境的包时,每每须要人工参与去修改配置文件,而人工参与的次数越大错误的概率就会越大,那maven能不能再不用人工修改配置文件的前提下来分别打两个环境的包呢,固然能够。git
<!--也会供子项目继承--> <build> <!-- 插件管理,可供子项目继承 --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </pluginManagement> <resources> <resource> <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> <!--设置自动替换--> <resource> <directory>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/core/src/main/resources</directory> <includes> <include>jdbc.properties</include> </includes> <!--也能够用排除标签--> <!--<excludes></excludes>--> <!--开启过滤--> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>initialize</phase> <!--<phase>clean</phase>--> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>Fruit:${fruit}</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> <profiles> <profile> <id>product</id> <properties> <fruit>product</fruit> </properties> <build> <filters> <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-product.properties</filter> </filters> </build> </profile> <profile> <id>dev</id> <properties> <fruit>dev</fruit> </properties> <activation> <!-->默认是dev环境的<--> <activeByDefault>true</activeByDefault> </activation> <build> <filters> <filter>/Users/iss/sourceCode/gitProject/iss/maven-multi-module/filters/jdbc-dev.properties</filter> </filters> </build> </profile> </profiles>
若是想要打生产环境的包web
mvn package -Pproduct
filter文件下包括2个配置文件
jdbc-dev.propertiesapache
jdbc.url=i am dev jdbc.username=i am dev jdbc.password=i am dev
jdbc-product.propertiesmaven
jdbc.url=i am product jdbc.username=i am product jdbc.password=i am product
而resource目录下
jdbc.propertiessvg
jdbc.url=${jdbc.url} jdbc.username=${jdbc.username} jdbc.password=${jdbc.password}
maven在构建的时候会自动替换变量里的变量测试