包阶段不会从目标目录生成war

时间:2014-05-01 18:59:38

标签: java maven maven-replacer-plugin

我打算将某个文件的内容从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应用程序资源。

enter image description here

我尝试在打包阶段使用此插件也没有任何成功(我能够在目标目录的html中查看构建时间,但不能在war中查看)。

1 个答案:

答案 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>