Eclipse+maven多环境,每个环境多配置打包

来源:互联网 发布:上海一本升学率 知乎 编辑:程序博客网 时间:2024/05/01 19:10
    公司现在项目都是用的ant脚本打的war包,不过经理觉得现在都是用的maven,或者是gradle会更好,ant那个东西太古董了,    让我考虑下业余时间给项目搞成maven打包的,于是我在完成后就写了这篇博客。    环境:Eclipse+maven+jdk1.6    状态:项目各个环境的配置文件有多个不同,而且还在不同的路径下。    思路:profile建立环境分支,exclude删除不需要的配置,plugin将指定profile环境的配置文件copy至各个路径下
<profiles>        <profile> <!-- 生产环境 -->            <id>test</id>            <properties>                <profiles.active>test</profiles.active>            </properties>        </profile>        <profile> <!-- 生产环境 -->            <id>pro</id>            <properties>                <profiles.active>pro</profiles.active>            </properties>        </profile>    </profiles>    <build>        <resources>            <resource>                <directory>src/main/resources</directory>                <filtering>true</filtering>                <excludes>                <!--打包删除以下配置-->                    <exclude>test/**/*.*</exclude>                    <exclude>pro/**/*.*</exclude>                    <exclude>META-INF/*.properties</exclude>                    <exclude>appcontext-dubbo-provider.xml</exclude>                    <exclude>freemarker.properties</exclude>                    <exclude>log4j.properties</exclude>                </excludes>            </resource>        </resources>        <testResources>            <testResource>                <directory>src/test/java</directory>                <excludes>                    <exclude>**/*.java</exclude>                </excludes>            </testResource>        </testResources>        <plugins>                        <!--打包将指定环境的配置文件复制到web-inf/classes下-->            <plugin>                <artifactId>maven-resources-plugin</artifactId>                <version>2.5</version>                <executions>                    <execution>                        <id>copy-resources</id>                        <phase>validate</phase>                        <goals>                            <goal>copy-resources</goal>                        </goals>                        <configuration>                            <outputDirectory>target/classes</outputDirectory>                            <resources>                                <resource>                                    <directory>src/main/resources/${profiles.active}/classes</directory>                                    <includes>                                        <include>*.properties</include>                                        <include>*.xml</include>                                        <include>META-INF/*.*</include>                                    </includes>                                    <filtering>true</filtering>                                </resource>                            </resources>                        </configuration>                    </execution>                </executions>            </plugin>            <plugin>                <artifactId>maven-war-plugin</artifactId>                <version>2.6</version>                <configuration>                    <warSourceDirectory>WebContent</warSourceDirectory>                </configuration>            </plugin>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <!-- <version>2.5.1</version> -->                <configuration>                    <source>1.6</source>                    <target>1.6</target>                </configuration>            </plugin>        </plugins>    </build>
    上面是pom详细配置,然后是具体的文件夹目录结构

这里写图片描述

    截图中环境有test和pro两个,如果打test环境,则要将test/classes文件下的*.xml和*.properties复制到    src/main/resources下, test/classes/META-INF下的*.properties复制到src/main/resources/META-INF下,还要将这两个文件夹及其子文件全部删除
原创粉丝点击