maven根据不同环境打包

转自https://blog.youkuaiyun.com/cktmyh/article/details/57428593

在打包的时候用对应的文件目录下的配置文件。第三个是测试环境,第四个是三个环境的共同配置。

|-- 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 clean package
mvn clean package -Pdev
mvn clean package -Ptest
mvn clean package -Pproduct

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值