我打算将某个文件的内容从src目录替换为war而不更改Src目录中的文件。所以我使用的是maven-replacer-plugin
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<!-- the replace should happen before the app is packaged -->
<phase>prepare-package</phase>
<goals>
<goal>replace</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<!-- replace the token in this file -->
<include>target/**/*.html</include>
</includes>
<regex>false</regex>
<!-- the name of the token to replace -->
<token>BUILD_TIME</token>
<!-- replace it with the maven project version -->
<value>${timestamp}</value>
</configuration>
我在准备包阶段看到目标导向器中的文件被替换了。我通过运行mvn prepare-package来确认,我看到BUILD_TIME正在被构建时替换。但是当执行包阶段时,正在替换src目录中的内容。从下面的屏幕截图中我可以看到,在prepare-package之后的下一个阶段,正在从导致问题的src目录中复制Web应用程序资源。
我尝试在打包阶段使用此插件也没有任何成功(我能够在目标目录的html中查看构建时间,但不能在war中查看)。
答案 0 :(得分:0)
终于找到了问题,默认情况下maven war pluggin使用源目录打包战争。为了覆盖它,我们需要使用warSourceDirectory来指定要从中选择的位置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>target/illinois</warSourceDirectory>
</configuration>
</plugin>