maven程序集插件添加依赖程序JAR中不可用的某些依赖文件

时间:2014-06-30 10:57:10

标签: java maven zip maven-assembly-plugin

为了减少多模块maven项目的构建时间,我希望拥有部署档案的自己的项目。

我们有一些独立的批次使用maven-assembly-plugin作为.ZIP打包。由于目前打包ZIP是通过批量模块直接完成的,因此在ZIP中包含这两件事是没有问题的:

  • / lib包含所有依赖项(包括我们所有批次的Jar)
  • / script一个文件夹,该文件夹不包含在模块的批处理jar中,也不包含在其/ target文件夹中。包含一些用于开发的.BATs / .CMDs和.properties。

当涉及到有一个自己的项目来构建ZIP我没有问题来获取我们的依赖项(包括我们的批处理jar包含所有基于Java的批处理和东西),但我不知道如何包含/ script文件夹不是模块/目标输出的一部分。

我设法将它组合在一起的唯一方法是对该文件夹进行相对定义,如下所示:

<fileSet>
        <directory>${basedir}../my-batches-project/src/main/scripts</directory>
        <includes>
            <include>*</include>
        </includes>
        <outputDirectory>/scripts</outputDirectory>
</fileSet>

仅当新项目在与多模块项目相同的级别上签出时才有效。 我想知道是否有更好的方法来包含某个maven项目的文件。

修改

与一些队友交谈,我们决定在两个项目中重复上述/脚本文件夹。在构建ZIP的部署项目中,它将保留在src / main / scripts下,而在批处理模块中,它将驻留在src / test / scripts中以允许本地执行批处理...但是我不喜欢这样。

1 个答案:

答案 0 :(得分:0)

一种合法的方法是在自己的模块中维护所需的资源,将其作为jar / zip填充到存储库,并在上述两个项目中依赖于新的maven模块。

在我们的上下文中,我们认为这是一个过度设计的解决方案,我们目前认为我们批次的部署密切ZIP的打包发生在指定的构建服务器上,其中还有其他“仅用于生产”的文件。 “仅用于开发” - 文件被替换为我们可以使用相对路径,因为我们的每个maven项目都在此构建服务器上签出。