首页 > 解决方案 > maven-assembly-plugin (3.1.0) 的 outputFileNameMapping 和排除问题

问题描述

我有一个多模块 maven 项目,其中包含两个单独的“主”项目(projectA 和 projectB),我想从中构建一个 zip 文件(包括所有依赖项)。我想排除的依赖项“subProjectC”之一。这是 assembly.xml 的相关部分:

<moduleSets>
    <moduleSet>
        <!-- Enable access to all projects in the current multimodule build! -->
        <useAllReactorProjects>true</useAllReactorProjects>

        <includes>
            <include>${project.groupId}:projectA</include>
            <include>${project.groupId}:projectB</include>
        </includes>
        <excludes>
            <exclude>${project.groupId}:subProjectC</exclude>
        </excludes>
        <binaries>
            <outputFileNameMapping>${module.artifactId}.${module.extension}</outputFileNameMapping>
            <outputDirectory>project-root/lib</outputDirectory>
            <unpack>false</unpack>
        </binaries>
    </moduleSet>
</moduleSets>

subProjectC 仍然出现在 zip 文件中。

此外,所有依赖项都会显示其完整版本,例如 projectA-0.0.1-SNAPSHOT.jar,尽管 outputFileNameMapping 应该阻止这种情况......

我究竟做错了什么?

标签: mavenmaven-assembly-plugin

解决方案


好的,似乎“outputFileNameMapping”只影响“包含”列表中指定的那些工件......


推荐阅读