【问题标题】:Maven-war-plugin - remove filesMaven-war-plugin - 删除文件
【发布时间】:2014-12-22 11:20:17
【问题描述】:

我正在开发混淆 js 文件的 maven plagin。它执行以下操作:

  1. 从目标获取 *.js 文件,

  2. 使用 google 闭包对其进行混淆,

  3. 在目标中创建 *.min.js 文件,

  4. 如有必要,从目标中删除源(未混淆的文件)。

为了在包阶段和准备包阶段之间获得点,我使用以下解决方案:https://stackoverflow.com/a/27566620/2022068

一切正常。插件已准备就绪。但是我有以下问题 - 如果我删除源文件,maven-war-plugin 会再次复制它。也许它有一些检查机制——我不知道。我现在唯一能做的就是删除并创建空文件。比源文件存在但它是空的。

我的问题 - 我能否以某种方式最终从目标中删除文件,永远...?

【问题讨论】:

  • 为什么不在文件被复制到目标文件夹之前这样做呢?为什么不使用现有的插件,如 github.com/samaxes/minify-maven-plugin
  • @khmarbaise 这是你第二次问我同样的问题。我需要这个功能来做我想做的事情。我需要我的插件,因为它必须做我想做的事。就是这样。

标签: java javascript maven


【解决方案1】:

您可能需要将这一点教给 maven-war-plugin。我没有做同样事情的例子,但是有 packageExcludes(请参阅:http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html),这似乎不完全是您需要的,但也有 warSourceExcludes:http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#warSourceExcludes

war 插件有自己的文件复制机制(除了资源插件)。这可能是这里的问题。还有一些关于过滤的例子:http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

也许将您不想看到的文件视为排除项会起作用(如果 warSourceExcludes 与您计划的不同)。

【讨论】:

  • 感谢您的帮助。问题是我动态添加/删除文件(来自我的 Maven 插件),而不是来自 pom 配置。
  • 不能按照一定的模式添加/删除文件吗?喜欢对原始文件和混淆文件使用文件夹名称/默认值?过滤器支持一些 ANT 表达式,而无需知道或无法依赖约定,您注定要解开战争并删除您知道不应该存在的文件。这似乎不是最好的解决方案:/
  • 是的,我也在考虑这个解决方案:模式+包含/排除。然而,当我的插件非常强大且易于使用时,它们会产生额外的问题。但是,如果我能解决这个问题,我将使用模式。 (拆包很糟糕:))
  • 你知道我害怕什么 - 如果我排除所有 .js 文件并自己复制它们,maven-war-pluing 将删除它们。我的意思是我自己复制的文件。
  • 但是看起来生命周期还不错?也许你需要先做你的工作,然后让战争插件复制东西,但配置它以排除你混淆的东西?如果其他一切都失败了,另一种选择是分叉战争插件并将您的包含在其中?
猜你喜欢
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
相关资源
最近更新 更多