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

时间:2010-01-18 09:04:25

标签: configuration maven packaging appassembler

我正在使用Maven Appassembler插件打包我的应用程序。我想用应用程序打包一些配置文件。我找到了configurationDirectoryincludeConfigurationDirectoryInClasspath参数,但我还没有找到应该如何创建(和填充)该配置目录。我已经尝试将文件放在src/main/resources中,但这只是将它们放在我项目的jar文件中。

使用maven做什么是“正确”的方式?

5 个答案:

答案 0 :(得分:6)

不幸的是,这是当前版本中的appassembler插件的限制。通常,插件与程序集插件结合使用以生成最终工件,您可以在其中包含对配置目录的引用。但是,如果您只想从appassembler插件获得功能结构,则需要手动将文件复制到位。可以在此处找到使用带有src/main/conf目录的antrun插件的示例:http://svn.apache.org/viewvc/archiva/trunk/archiva-jetty/

答案 1 :(得分:2)

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

可以使用参数<configurationSourceDirectory>src/main/config</configurationSourceDirectory>

更改配置文件的来源

答案 2 :(得分:1)

当我包含copyConfigurationDirectory属性时,它会复制配置文件并正确捆绑它们。

  <configurationDirectory>etc</configurationDirectory>
  <configurationSourceDirectory>src/main/config</configurationSourceDirectory>
  <copyConfigurationDirectory>true</copyConfigurationDirectory>

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

多年后,在插件版本1.10中,现在有一个preAssembleDirectory配置选项。不幸的是,我发现它不够灵活,无法满足我的需求,因为它直接复制到assembleDirectory中,不允许在assembleDirectory中指定目标目录路径。