如何从子模块构建目录添加工件?

时间:2018-12-18 12:24:05

标签: java maven jar

我具有以下项目结构:

project-root
    |
    |__lib
    |   |
    |   |__target
    |   |    |____lib.jar
    |   |    |____lib.so
    |   |___src
    |   |    |____ ...
    |   |
    |   |_pom.xml
    |
    |___model
    |     |
    |     |_pom.xml
    |     |
    |    ...
    |
    |__pom.xml

因此,我有两个模块的项目:libmodel,其中模型使用tar.gz生成maven-assembly-plugin分布。问题是建立lib导致产生本机库lib.so,该库必须复制到tar.gz中才能使用。

如何使maven-assembly-plugin包含来自一个子模块的构建目录的工件到分发中(例如,在我的情况下为tar.gz

1 个答案:

答案 0 :(得分:0)

在程序集descriptor文件中,可以将lib.so文件添加到tar包中。 (我假设您已经有一个用于maven程序集的描述符来创建tar.gz包)

我在这里修改默认的jar-with-dependencies描述符作为示例。

stateOptions

我们需要提供目录部分的相对路径。 (对于未发布的文件,我不知道其他任何方式。)OutputDirectory确定将文件复制到创建的存档中的哪个文件夹中。 (如果需要,可以将其保留为“ /”(位于存档的根目录中。

使用程序集插件时(您可能会这样)

listHotels.reduce

在这种情况下,custom-descriptor.xml文件位于pom.xml文件的旁边。如果将其放置在其他位置,则应在描述符标记中给出相对路径。

Ps:如果lib是在模型之前构建的,这将起作用。