【问题标题】:Maven ANT task to copy a file during test when file does not exists当文件不存在时,Maven ANT 任务在测试期间复制文件
【发布时间】:2014-02-27 10:44:06
【问题描述】:

我们遇到的情况是,当文件不存在时,我们需要将一些属性文件复制到类路径。

我们正在使用 maven 构建和 maven ant 任务来复制文件。

我们使用过如下的复制任务:

<copy file="src/systemConfig.properties" tofile="src/test/resources/systemConfig.properties" />

当文件不存在或目标文件比src文件旧时,此复制任务将src文件复制到dest。

但是,当且仅当文件不存在时,我才需要进行复制。

你能帮帮我吗?

【问题讨论】:

  • 你确定你使用的是正确的Maven吗?在测试阶段之前,所有测试资源都被复制到构建目录test-classes 目录中,因此即使您更改文件内容,在下一次构建时它们也会恢复。那么为什么不将src 中的文件直接放在src/test/resources 中呢?在构建时弄乱源目录是个坏主意,这就是构建目录的用途。
  • 我正在使用 maven-antrun-plugin 1.7 版和以下执行代码 copy-system-configprocess-test-sources运行
  • 您不理解之前的评论,该评论准确地解释了如何使用已经满足您需求的 Maven。所以不需要anttask。除此之外,如果你有集成测试,你应该使用 maven-failsafe-plugin 和不同的方式,但通过 ant taks 复制文件是错误的方式。
  • khmarbaise 和 Blank Chisui,感谢您的 cmets。 test/resourec 中的 systemConfig.prop 将由用户根据他们的环境进行修改。因此,如果测试/资源中所有准备就绪,我们计划不更新 sysConf。任何新的配置更改,用户应在测试/资源中的 syscon 中手动更新

标签: java jakarta-ee ant maven-3


【解决方案1】:

使用这个:

<if>
    <available file="src/test/resources/systemConfig.properties"/>
    <then>
       <copy file="src/systemConfig.properties" tofile="src/test/resources/systemConfig.properties" />
    </then>

</if>

Answer is already here on stackoverflow

【讨论】:

  • Rahul 感谢您的回复。使用您建议的文件复制代码不起作用..我们使用的是 maven-antrun-plugin 1.7 版
  • @Prasobh.K 复制行是您使用的。您要检查哪个文件存在或不应该在可用标签中。
  • 我想检查一下,tofile ie.destination file..如果目标文件不存在我需要将源复制到目标。
猜你喜欢
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 2010-11-17
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
相关资源
最近更新 更多