我正在使用Maven Appassembler插件来打包我的应用程序。我想在应用程序中打包一些配置文件。我找到了configurationDirectory
andincludeConfigurationDirectoryInClasspath
参数,但我还没有找到应该如何创建(和填充)该配置目录。我已经尝试将文件放入 中src/main/resources
,但这只是将它们放入我项目的 jar 文件中。
使用 Maven 的“正确”方法是什么?
我正在使用Maven Appassembler插件来打包我的应用程序。我想在应用程序中打包一些配置文件。我找到了configurationDirectory
andincludeConfigurationDirectoryInClasspath
参数,但我还没有找到应该如何创建(和填充)该配置目录。我已经尝试将文件放入 中src/main/resources
,但这只是将它们放入我项目的 jar 文件中。
使用 Maven 的“正确”方法是什么?
不幸的是,这是当前发行版本中 appassembler 插件的限制。通常,该插件与程序集插件一起使用以生成最终工件,您可以在其中包含对配置目录的引用。但是,如果您只想从 appassembler 插件中获得功能结构,则需要手动将文件复制到位。src/main/conf
可以在此处找到使用带有目录的 antrun 插件的示例:http: //svn.apache.org/viewvc/archiva/trunk/archiva-jetty/
默认情况下,插件使用目录src/main/config
。
可以使用参数更改配置文件的来源<configurationSourceDirectory>src/main/config</configurationSourceDirectory>
当我包含 copyConfigurationDirectory 属性时,它会复制配置文件并正确捆绑它们。
<configurationDirectory>etc</configurationDirectory>
<configurationSourceDirectory>src/main/config</configurationSourceDirectory>
<copyConfigurationDirectory>true</copyConfigurationDirectory>
我有一个不同的问题。我想在复制之前过滤我的配置文件,这给我带来了一些麻烦。
除此之外,不会为不同平台生成 bin 脚本。maven-assembly-plugin可以创建( package(s) {tar.gz, zip}) 用于分发。这些是通过 assemble.xml 配置的。您指定进入哪些文件(使用哪些选项(chmod))等。它还可以过滤文件(搜索/替换其中的值)。等等
多年后,在插件的 1.10 版中,现在有一个 preAssembleDirectory 配置选项。不幸的是,我发现它对我的需要不够灵活,因为它直接复制到 assembleDirectory 中,并且不允许在 assembleDirectory 中指定目标目录路径。