我正在使用exec-maven-plugin在POM生命周期的预清理阶段执行自定义清理脚本。这个脚本的目的是清理一些在编译和测试阶段创建的日志文件和测试工件。这个脚本需要知道这些文件的路径,所以它在初始化阶段被maven-resources-plugin过滤。用于清理阶段的Maven exec插件
我发现这是一个糟糕的设计选择:在完成mvn initialize
之后,我只能做mvn clean
。这通常不是问题,因为您只需在完成某些操作后清理即可......但是,我已经开始使用maven-release-plugin,该插件尝试执行mvn clean deploy
,由于未执行清理脚本,该插件失败可用。
我认为以下可能的解决方案:
只使用Maven的清理插件
安装脚本在不同的阶段
修改脚本,以便它不需要过滤
我不像这类原因,这是因为:
我想用脚本清理,因为它可以让我保持POM文件干净(也有很多,我需要删除的文件,和我不不想将所有这些手动指定给maven-clean-plugin)。
不可能:测试结果需要Jenkins检测后才能检测到,所以我无法在构建和测试周期中清除它们。我可以绑定的清洁周期中没有其他阶段。
可能的分类,但在不久的将来,我们(可能)希望直接从詹金斯发布,而詹金斯只能访问sh(而不是bash),所以我不能使用相对路径,除非我做难看
export PATH=.:$PATH
。
如何解决这个问题,考虑到我在Jenkins服务器上的限制(不在我的控制下)?
为什么你需要一个自定义脚本?如果您将所有结果都放置在目标文件夹中,则不应该成为问题。 – khmarbaise
并非所有结果都在目标文件夹中。我们在这里使用的构建和测试工具倾向于在源代码树上留下东西。他们不应该在那里,但我不能真正控制。因此,我的自定义脚本后来清理混乱。 – Ludo
为什么不使用maven-clean-plugin来清理其他位置(http://maven.apache.org/plugins/maven-clean-plugin/examples/delete_additional_files.html)。 – khmarbaise