【问题标题】:maven-antrun-plugin copy resources works only on validate phasemaven-antrun-plugin 复制资源仅适用于验证阶段
【发布时间】:2017-09-19 09:59:03
【问题描述】:

我正在使用 maven-antrun-plugin 1.8 版将一些文件复制到 src/main/resources 文件夹,以便在打包阶段将其包含在 jar 中。

如果定义为复制到资源文件夹的任务的执行阶段验证一切正常,但如果是编译/测试文件被复制到 src/main/resources 文件夹但不包含在 jar 中

【问题讨论】:

  • 你为什么要复制它们?为什么不把它们放到 src/main/resources 中呢?
  • 我正在尝试复制一些不在同一个项目中的外部资源。
  • 这听起来不对,因为资源属于正在使用它们的项目...此外,如果您将它们放在另一个项目中,而该项目不使用包含资源的 jar 的依赖关系,那么它们就在类路径?

标签: maven maven-antrun-plugin


【解决方案1】:

这是因为 Resources 文件夹在 Maven 的 process-resources 阶段被复制到目标文件夹。因此,要在 jar/war 的资源文件夹中获取文件,您需要在 process-resources 阶段之前将文件复制到 resources 文件夹,即您可以选择 maven 的 validate、initialize 和 generate-sources 阶段。

【讨论】:

    【解决方案2】:

    了解Maven lifecycle 很重要。将 Antrun 插件绑定到足够早的阶段以实现您想要的。

    也就是说 - 考虑将其他资源打包到一个 jar 中,然后将该 jar 添加为依赖项,而不是添加 Antrun 插件调用。或者,使用 Assembly 插件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      相关资源
      最近更新 更多