我正在使用Maven Appassembler插件打包我的应用程序。我想用应用程序打包一些配置文件。我找到了configurationDirectory
和includeConfigurationDirectoryInClasspath
参数,但我还没有找到应该如何创建(和填充)该配置目录。我已经尝试将文件放在src/main/resources
中,但这只是将它们放在我项目的jar文件中。
使用maven做什么是“正确”的方式?
答案 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中指定目标目录路径。