代码之家  ›  专栏  ›  技术社区  ›  Sietse

如何使用Maven Appassembler包含配置文件?

  •  9
  • Sietse  · 技术社区  · 15 年前

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

    使用Maven的“正确”方法是什么?

    5 回复  |  直到 8 年前
        1
  •  6
  •   Brett Porter    15 年前

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

        2
  •  2
  •   jassuncao    14 年前

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

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

        3
  •  1
  •   jon077    14 年前

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

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

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

        4
  •  0
  •   Verhagen    15 年前

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

        5
  •  0
  •   wytten    8 年前

    几年后,在1.10版的插件中,现在有了预装配目录配置选项。不幸的是,我发现它不够灵活,不能满足我的需要,因为它直接复制到assembledirectory中,并且不允许在assembledirectory中指定目标目录路径。