从maven程序集中的目标单个jar中排除第三方依赖项

时间:2014-04-15 07:31:10

标签: maven jar module maven-assembly-plugin

我正在使用maven-assembly-plugin从maven模块制作一个jar。 这是assembly.xml:

<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>all-jar</id>
<formats>
    <format>jar</format>
</formats>

<includeBaseDirectory>false</includeBaseDirectory>

<dependencySets>
    <dependencySet>
        <unpack>true</unpack>
        <useTransitiveDependencies>false</useTransitiveDependencies>
        <unpackOptions>
            <excludes>
                <exclude>**/resources</exclude>
                <exclude>xsom:xsom</exclude>
            </excludes>
        </unpackOptions>
    </dependencySet>
</dependencySets>

我在我的一个模块中使用了第三部分jar。虽然我放入了排除列表,但是这个第三方jar也被解压缩并且不排除。如何将其从拆包中排除?实际上我只想要解压缩模块的资源文件夹,其他java源代码可以保持打包状态。

1 个答案:

答案 0 :(得分:0)

您需要将exclude标记放在unpack选项之外:

<dependencySets>
    <dependencySet>
        <unpack>true</unpack>
        <useTransitiveDependencies>false</useTransitiveDependencies>
        <excludes>
            <exclude>xsom:xsom</exclude>
        </excludes>
        <unpackOptions>
            <excludes>
                <exclude>**/resources</exclude>
            </excludes>
        </unpackOptions>
    </dependencySet>
</dependencySets>

如果您在 unpackOptions内使用排除,则会排除内容被解压缩。