在我的java webapp项目中,我把所有的jsp文件都放在src/main/webapp/jsp.
如何在构建战争时启用筛选并将属性占位符替换为实际值?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<filters><filter>${basedir}/src/main/resources/filter.properties</filter></filters>
<webResources>
<resource>
<directory>src/main/webapp/jsp</directory>
<targetPath>/jsp/</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
附加 mvn 包命令的控制台输出:
[exec] [INFO] Copying webapp webResources [projectbasedir/src/main/webapp/jsp] to [projectbasedir/target/myapp]
[exec] [INFO] Copying webapp resources [projectbasedir/src/main/webapp]
jsp文件在"Copying webapp webResources"
步骤中被正确过滤,但"Copying webapp resources"
步骤会覆盖所有这些更改,因为它会重新复制从src/main/webapp folder
到目标文件夹的所有内容。
如何使此筛选工作?
尝试用这个配置替换它,区别在于使用directory
作为src/main/webapp
并在includes
中包含子文件夹。无论出于何种原因,当directory
与warSourceDirectory
匹配时,它都可以正常工作。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<filters><filter>${basedir}/src/main/resources/filter.properties</filter></filters>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<targetPath>/jsp/</targetPath>
<filtering>true</filtering>
<includes>
<include>jsp/**</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>