我使用antrun插件删除并移动一些属性文件,具体取决于使用的配置文件:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete>
<fileset dir="${project.build.outputDirectory}/com/.../props">
<exclude name="pm-web-${profile.id}.xml" />
</fileset>
</delete>
<move file="${project.build.outputDirectory}/com/.../props/pm-web-${profile.id}.xml"
tofile="${project.build.outputDirectory}/com/.../props/pm-web.xml" />
</tasks>
</configuration>
</execution>
</executions>
当我检查目标/类文件夹时,我可以看到“不需要的”属性文件已被正确删除,并且移动任务也已正确执行。但是,当我查看构建的war文件时,我看到已删除的文件仍在那里(移动的文件在战争中是正常的)。
我不明白这是怎么可能的;我假设war插件基本上是jars up目标文件夹?由于文件已从目标文件夹中正确删除,我希望它们也不会在战争中。
使事情变得复杂(对不起)我注意到删除有时会部分地起作用,这意味着:有时一些文件夹(不是全部)已经“从战争中删除”。
我已经尝试过改变任务的目标(没有运气),但我认为大多数目标都是在建立战争之前发生的。
感谢您的帮助,
斯泰恩
答案 0 :(得分:1)
war mojo在创建.war存档之前在${project.build.directory}/${project.build.finalName}
目录中构建webapp。在添加antrun之前,也许你的属性文件在那里。在这种情况下,从target/classes
删除属性文件并未将其从${project.build.directory}/${project.build.finalName}
中删除,并且文件仍然在最终的.war中结束。但也许我猜太多了,我完全错了。看看你是否可以在清理完所有东西后重现问题。
答案 1 :(得分:0)
尝试更改
<phase>compile</phase>
与
<phase>prepare-package</phase>