【问题标题】:Exclude 3rd party dependency from target single jar in maven assembly从 Maven 程序集中的目标单个 jar 中排除 3rd 方依赖项
【发布时间】:2014-04-15 07:31:10
【问题描述】:

我正在使用 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源可以保持打包。

【问题讨论】:

    标签: maven jar module maven-assembly-plugin


    【解决方案1】:

    您需要将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>
    

    如果您使用 exclude inside unpackOptions,则您将内容排除在解包之外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-06
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 2015-03-07
      相关资源
      最近更新 更多