我具有以下项目结构:
project-root
|
|__lib
| |
| |__target
| | |____lib.jar
| | |____lib.so
| |___src
| | |____ ...
| |
| |_pom.xml
|
|___model
| |
| |_pom.xml
| |
| ...
|
|__pom.xml
因此,我有两个模块的项目:lib
和model
,其中模型使用tar.gz
生成maven-assembly-plugin
分布。问题是建立lib导致产生本机库lib.so
,该库必须复制到tar.gz
中才能使用。
如何使maven-assembly-plugin
包含来自一个子模块的构建目录的工件到分发中(例如,在我的情况下为tar.gz
)
答案 0 :(得分:0)
在程序集descriptor文件中,可以将lib.so文件添加到tar包中。 (我假设您已经有一个用于maven程序集的描述符来创建tar.gz包)
我在这里修改默认的jar-with-dependencies描述符作为示例。
stateOptions
我们需要提供目录部分的相对路径。 (对于未发布的文件,我不知道其他任何方式。)OutputDirectory确定将文件复制到创建的存档中的哪个文件夹中。 (如果需要,可以将其保留为“ /”(位于存档的根目录中。
使用程序集插件时(您可能会这样)
listHotels.reduce
在这种情况下,custom-descriptor.xml文件位于pom.xml文件的旁边。如果将其放置在其他位置,则应在描述符标记中给出相对路径。
Ps:如果lib是在模型之前构建的,这将起作用。