使用MAVEN动态生成配置文件

  1. 创建MAVEN BUILD命令,并在main标签页下添加参数。
  2. 使用maven的build.resources.resource标签,指定需要过滤替换的文件。如下:
<build>
        <!-- <outputDirectory>f:\webapp</outputDirectory> -->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>*.properties</include>
                    <include>*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering><!--是否替换占位符-->
            </resource>
            <resource>
                <directory>src/main/resources/conf/quiee</directory>
                <filtering>true</filtering>
                <includes><include>reportConfig.xml</include></includes>
                <targetPath>${basedir}/src/main/webapp/WEB-INF/quiee</targetPath>
            </resource>
        </resources>
</build>

这时可以使用tomcate插件tomcat-maven-plugin动态的设置相关参数了,比较src/main/resources下的jdbc.properties文件。

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <configuration>
                    <path>/${appName}</path>
                    <port>${tomcatPort}</port>
                    <uriEncoding>UTF-8</uriEncoding>
                    <webResources>
                        <resource>
                            <directory>src/main/webapp/WEB-INF/quiee</directory>
                            <targetPath>WEB-INF/quiee</targetPath>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
jdbc.driverClassName=${mydriverclassname}
jdbc.url=${myurl}
jdbc.username=${myusername}
jdbc.password=${myjdbc.password}

reportConfig.xml是处在src/main/webapp下的文件,这些文件是不能动的,因为tomcat插件运行时使用就是这个地址,而resource功能默认是把配置的资源文件放到target/classes目录下的,而tomcat运行时使用的也是这个目录,所以src/main/javasrc/main/resources下需要过滤的文件,可以把自身当模板根据配置的参数,产生一个新的文件到target/classes目录下供tomcat使用。而src/main/webapp下的文件是tomcat最终需要用到的,使用模板放在这是不行的,使用在其它地方备份一下模板,把模板配置在resource中,进行过滤,并最终产生到webapp下对应的目录中。 而打包的时候,所有文件都是需要预先进行编译过滤的,相当于src下的文件能当做模块,最终都会新产生一个文件到artifactId-version的文件夹中,所以这里可以使用webResources来进行配置过滤。当前还可以继续使用上面的方法。webResources方法只适用到打包时使用。

    <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <warName>ROOT</warName>
                    <webResources>
                        <resource>
                            <directory>src/main/resources</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <includes>
                                <include>**</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>src/main/webapp/WEB-INF/quiee</directory>
                            <targetPath>WEB-INF/quiee</targetPath>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

            <!-- assembly插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.1</version>
                <configuration>
                <webResources>
                        <resource>
                            <directory>src/main/resources</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <includes>
                                <include>**</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>src/main/webapp/WEB-INF/quiee</directory>
                            <targetPath>WEB-INF/quiee</targetPath>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
Maven内置变量说明: 
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值