maven项目切换本地线上等环境

先注明:本人小码农一只,如有错误请见谅并指出,谢谢。

先贴下项目图
项目图

输出路径
输出路径
设置webapp路径的原因是我需要修改其中的内容(这里遇到一个坑,花了2天时间才爬出来)
主要说下用到的2个插件

  1. maven-antrun-plugin
    这个插件的作用是可以在打包前修改文件,如删除、移动、重命名等,当然功能不止这些,我再项目中暂时只用到这。
<profiles>
        <profile>
        <id>pat</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>compile</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                        <tasks>
                                            <echo>Using pat file packaging</echo>
                                            <delete file="${project.build.outputDirectory}/configuation.properties" />
                                            <move file="${project.build.outputDirectory}/configuation-pat.properties" tofile="${project.build.outputDirectory}/configuation.properties"/>
                                        </tasks>
                                </configuration>
                            </execution>    
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

项目文件
这里写图片描述
运行图
运行图
结果
效果图
可以看到文件已经被删除和替换了(完整的应该还要贴项目中configuration-pat.properties内容和war包中configuration.properties内容是否一致,但是这样又得截两张图,我嫌麻烦就不弄了)
这段代码是配置pat环境,名字随意。
说下代码里几个地方:

  • <phase>compile</phase>
    这个指的的maven的生命周期,compile指的是编译,其他周期可以看下https://www.cnblogs.com/luotaoyeah/p/3819001.html这篇文章。

  • <echo>Using pat file packaging</echo>
    这个是输出一段话,在日志中能看到,这里是为了表示插件被执行了实际对打包没影响。

  • <delete>
    删除文件
  • <move>
    移动文件,同时也可以用作重命名,复制是copy,具体还有那些命令可以上网搜下。
  • ${project.build.outputDirectory}
    这个路径是target/class

这个插件就说到这。

下面说下我打包时遇到另一个困扰的问题。
打包时webapp下的内容也分生产和开发,但是打war包是默认是将src/main/webapp下的内容复制到war包中,但是在项目deploy时webapp中的内容是没有发布到target中,这就导致没法修改。
解决方法

  1. 将webapp也配置输出路径(在上面的输出路径图片中能看到),这样就可以在上面pat的task中增加对webapp路径下的文件进行修改。具体代码为:
<delete file="${project.build.directory}/webapp/views/error.html" />
<move file="${project.build.directory}/webapp/views/error-pat.html" tofile="${project.build.directory}/webapp/views/error.html"/>

这里的${project.build.directory} 路径为target/

2.配置war包中的wabapp复制路径
这里就要用到另一个插件:maven-war-plugin
代码:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <warName>wbs</warName>
        <webXml>${project.build.directory}/webapp/WEB-INF/web.xml</webXml>
        <warSourceDirectory>target/webapp</warSourceDirectory>
    </configuration>
</plugin>

其中最主要的是<warSourceDirectory>target/webapp</warSourceDirectory>这个就是指定webapp的路径

到这就打war时就可以自动实现pat文件的切换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值