如何在已过滤的文件中访问程序集的ID?

时间:2011-04-01 19:14:48

标签: maven maven-assembly-plugin

我有多个看似如下的程序集:

<assembly>
<id>component-000</id>
<fileSet>
    <directory>src/main/assembly</directory>
    <outputDirectory>/${assembly.outputrootdirectory}</outputDirectory>
    <filtered>true</filtered>
</fileSet>
</assembly>

我还有一个文件,它包含在我想要包含id的所有程序集中(在这种情况下为component-000)。

... component-id:${id} ...

我已经尝试了$ {assembler.id},$ {assembly.id} $ {id}等所有这些都产生了各种各样的失败。有什么想法吗?如果有人知道如何潜在地转储/打印可用的属性,那么也是相关的吗?

1 个答案:

答案 0 :(得分:0)

我想做类似的事情。我有一个我想在多个程序集之间共享的组件。我打算使用程序集的ID作为目录名,例如

<fileset>
    <directory>${project.build.directory}/${assemblyId}</directory>
    ....
</fileset>

在尝试${assembly.id}${assemblyId}之后没有成功,我快速浏览了插件版本2.3的代码。我找到了插入其他属性(项目,过滤器,env等)的代码,但它似乎没有考虑程序集中的属性。有几个似乎相关的JIRA问题:http://jira.codehaus.org/browse/MASSEMBLY-445http://jira.codehaus.org/browse/MASSEMBLY-436

对于我的用例,这意味着我需要复制我想在每个程序集中共享的<fileset>块。或者,我可以将程序集插件配置为具有多个执行,每个执行加载不同的过滤器文件。我可能会选择前者,因为我没有很多配置要复制。