Intellij IDEA中使用maven filter遇到的问题

自己使用的java ide一直是IDEA,在项目中需要使用maven的filter进行开发、线上环境的不同的变量的管理,根据maven-war-plugin进行过滤时,总是不能得到预期的变量替换。最终在idea的官网找到了问题所在:
IntelliJ IDEA's Make features are capable of filtering Maven resources. However, IntelliJ IDEA yet does not support filtering web resources.
很悲剧,浪费了一上午的时间解决这个问题。

最后的解决办法是:要么创建module时,对需要使用filter功能的文件不要放在web module中;要么通过ant命令或自行写maven插件解决,在idea编译后、运行web容器前,将target\classes目录下的文件复制到target\web_fileName\WEB-INF\classes下面(因为idea对target\classes下面的文件进行filter,而不会对web_fileName\WEB-INF\classes下面的文件进行过滤)。最终还是自己写了个maven插件搞定,源代码见附件。

附两种filter的使用:

<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<filters>
<filter>
${base.dir}/*.properties
</filter>
</filters>
<webResources>
<resource>
<directory>
${base.dir}/src/webapp/patches/
</directory>
<includes>
<include>resources-config.xml</include> <!--对哪些文件进行filter-->
</includes>
<filtering>true</filtering> <!--启用filter功能-->
<targetPath>WEB-INF/classes</targetPath>
</resource>
</webResources>
</configuration>
</plugin>



通用filter配置(可解决idea中的问题)

<build>
<filters>
<filter>${user.home}/filter.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值