Maven多模块项目中复制资源

13

我的需求非常基本,但我找不到任何简洁的答案:我只需要能够在多模块项目中分发资源。

例如,让我们考虑LICENSE文件,我假设该文件对于所有模块而言是相同的。我不想手动将其复制到每个模块中,因为文件可能会随着时间而改变。我也不想静态地链接到项目文件夹外的资源(即使使用相对路径),因为模块化结构也可能会发生变化。

是否有任何插件可用于可靠地保证每个模块都有所需的文件?这样的复制可以通过利用父项目的POM或由模块化层次结构中的超级项目直接执行同样可以接受。

1个回答

13

你可以使用`assembly`和`dependency`插件。你是否看到了这个链接?http://www.sonatype.com/people/2008/04/how-to-share-resources-across-projects-in-maven/

它描述了这个选项。虽然这是2008年的文章,但Maven已经存在很长时间了,所以我认为这篇文章还比较新。

编辑 关于评论:
另一个选择是`maven-remote-resources-plugin`。更详细的示例请参见:
http://maven.apache.org/plugins/maven-remote-resources-plugin/examples/sharing-resources.html

由于他们的介绍已经说得很清楚了,我引用一下(maven.apache.org):

该插件用于从远程存储库中检索资源的JAR文件,处理这些资源,并将它们合并到Maven构建的JAR文件中。非常常见的用例是需要以一致的方式打包特定资源以跨组织共享:在Apache,每个生成的JAR都必须包含Apache许可证的副本和一个通知文件,其中列出了给定项目中使用的所有软件。


答案中的第二个链接已经提供了使用maven-remote-resources-plugin获得配置类型的示例。 - Luca Geretti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接