Maven插件:将文件内容复制到另一个文件中

时间:2013-08-26 13:02:39

标签: maven maven-plugin

我正在寻找合适的插件将文件内容复制到另一个文件中。

我的resource.xml内容如下:

<class>my.path.ResourceA</class>
<class>my.path.ResourceB</class>
<class>my.path.ResourceC</class>

并且必须在$ {content}:

的位置复制到destination.xml
<aaa>some info</aaa>
${content}

请问正确的maven插件是做什么的? 先感谢您。 NIC

2 个答案:

答案 0 :(得分:1)

一般情况下,对于Maven,你必须首先考虑你想做什么。乍一看似乎很奇怪,但由于Maven是一个固定的构建工具,做奇怪/解决方法通常并不简单; - )。

在这里,你需要两件事:

  1. 将该文件加载到“content”属性中(在通过绑定到早期阶段开始资源过滤之前,显然,请参阅下一点)
  2. 只需激活资源过滤即可完成
  3. 不幸的是,(1)能够在属性中加载文件没有众所周知的/标准插件。

    在通过专用插件重写之前,可能的方法是使用antrun-maven-plugin(through LoadFile task?)或gmaven插件将该文件加载到属性中(在初始化阶段,例如,它发生在process-resources,see the documentation about lifecycle之前。)

    然后,对于(2),您只需激活过滤(参见maven-resources-plugin的标准文档)。

答案 1 :(得分:0)

Baptiste 的答案不适用于 antrun 插件,因为 LoadFile 任务中的属性是 Ant 属性无法在 Maven 中访问以进行过滤。

相反,您可以使用 readfiles-maven-plugin,您可以在这里找到它:https://github.com/chonton/readfiles-maven-plugin