如何在Maven Appassembler中包含配置文件?

9
我正在使用 Maven Appassembler 插件打包我的应用程序。我想将一些配置文件与应用程序一起打包。我已经找到了 configurationDirectoryincludeConfigurationDirectoryInClasspath 参数,但我还没有找到如何创建(和填充)该配置目录的方法。我尝试将文件放在 src/main/resources 中,但那只是将它们放在我的项目的 jar 文件中。
使用 Maven,有什么“正确”的方法来做到这一点?
5个回答

6
很遗憾,这是当前版本的appassembler插件的限制。通常,该插件与assembly插件一起使用来生成最终构件,在其中可以包含对配置目录的引用。但是,如果您想通过仅使用appassembler插件获得功能结构,则需要手动将文件复制到指定位置。使用带有目录的antrun插件的示例可以在此处找到:http://svn.apache.org/viewvc/archiva/trunk/archiva-jetty/

2

默认情况下,该插件使用目录src/main/config

可以使用参数<configurationSourceDirectory>src/main/config</configurationSourceDirectory>更改配置文件的源。


这是真正的答案,同时添加 <copyConfigurationDirectory>true</copyConfigurationDirectory> - Benny Bottema

1
当我包含copyConfigurationDirectory属性时,它会复制配置文件并正确地捆绑它们。
  <configurationDirectory>etc</configurationDirectory>
  <configurationSourceDirectory>src/main/config</configurationSourceDirectory>
  <copyConfigurationDirectory>true</copyConfigurationDirectory>

不过我有一个不同的问题。我想在复制之前过滤我的配置文件,这给了我一些麻烦。


我有同样的需求,但是找不到解决方案。 - Jasonw

0
除此之外,它不会为不同平台生成二进制脚本。maven-assembly-plugin 可以创建(打包 {tar.gz, zip})以进行分发。这些是通过 assemble.xml 进行配置的。您可以指定哪些文件需要包含(使用什么选项(chmod)),等等。它还可以过滤文件(在其中搜索/替换值)。等等。

0
多年过去了,在插件的1.10版本中,现在有一个preAssembleDirectory配置选项。不幸的是,我发现它对我的需求不够灵活,因为它直接复制到assembleDirectory中,并且不允许指定目标目录路径在assembleDirectory内。

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