Maven 2 Maven:已删除的文件(antrun)仍在最终war文件中
我使用antrun插件根据使用的配置文件删除和移动一些属性文件:Maven 2 Maven:已删除的文件(antrun)仍在最终war文件中,maven-2,Maven 2,我使用antrun插件根据使用的配置文件删除和移动一些属性文件: <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>run</goal>
<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>
maven antrun插件
编译
跑
当我检查target/classes文件夹时,我可以看到“不需要的”属性文件已被正确删除,并且移动任务也已正确执行。但是,当我查看构建的war文件时,我看到删除的文件仍然在那里(war中移动的文件是ok的)
我不明白这怎么可能;我想war插件基本上会把目标文件夹震坏?由于这些文件已正确地从目标文件夹中删除,我希望它们不会也在战争中
让事情复杂化(对不起),我注意到删除有时会起局部作用,这意味着:有时一些文件夹(不是全部)已“从战争中删除”
我尝试过改变任务的目标(运气不好),但我认为大多数目标都发生在构建战争之前
谢谢你的帮助,Stijnwar mojo在创建.war存档之前在
${project.build.directory}/${project.build.finalName}
目录中构建webapp。也许你的属性文件在添加antrun之前就在那里了。在这种情况下,从target/classes
中删除属性文件并没有将它们从${project.build.directory}/${project.build.finalName}
中删除,这些文件仍然以final.war结尾。但也许我猜得太多了,我完全错了。现在您已经清理了所有内容,看看是否可以重现问题。尝试更改
<phase>compile</phase>
编译
与
准备包装
如果运行mvn clean package
,会发生什么?Pascal,这很有效!但是我不明白为什么;我以前尝试过clean,但不是一个命令(先clean,然后package)。即使没有一个干净的房间,我也希望它能工作。知道原因是什么吗?事实上,如果我做了一个清理并构建profile1,那么只有profile1的属性在战争中。如果我随后为profile2进行构建(清理),那么profile1和profile2的属性将处于战争状态。所以我想我每次都会执行干净的包。德克萨斯州!
<phase>prepare-package</phase>