maven根据不同环境打包

来源:互联网 发布:学生空间七天网络注册 编辑:程序博客网 时间:2024/05/01 15:21

比较常用的办法就是为不同的环境建立不同的配置文件目录。在打包的时候用对应的文件目录下的配置文件。第三个是测试环境,第四个是三个环境的共同配置。

|-- resources|   |-- dev|   |-- product|   |-- qa|   `-- public

对于不同的environment定义不同的profile就ok了,目录结构还是沿用原来的就可以。

在pom.xml里定义一个变量

    <properties>      ......       <package.environment>dev</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>

<resource>

                            <directory>src/main/resources/public</directory>

                            <targetPath>WEB-INF/classes</targetPath>

                            <filtering>true</filtering>

                        </resource>

</webResources> </configuration> </plugin>

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

0 0
原创粉丝点击