相关疑难解决方法(0)

如何让maven-assembly-plugin尊重pom.xml中定义的排除项?

TL; DR

在POM文件排除某些(特定)传递依赖项但将汇编描述符设置为获取所有依赖项时,排除的依赖项将包含在程序集中.我怎么能阻止这个?

一点背景

一些依赖项可能很难处理,因为它们的groupIds和artifactId几乎在每个版本(在我的例子中,bouncycastle)中都会发生变化.

我正在检索几个版本的bouncycastle(138,1.38,1.45和1.50).我的目的是消除1.50以外的所有版本.确切地说,我有一个依赖(让我们称之为some.perfectly.done:job)导入1.50和另一个(how.many.castles:do-you-need)导入所有其他依赖.它们是公司依赖项,因此为您提供真正的groupId:artifactId无法帮助您进行测试.

的pom.xml

我的依赖项声明如下:

<dependency>
    <groupId>some.perfectly.done</groupId>
    <artifactId>job</artifactId>
</dependency>
<dependency>
    <groupId>how.many.castles</groupId>
    <artifactId>do-you-need</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>*</artifactId>
        </exclusion>
        <exclusion>
            <groupId>bouncycastle</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)

assembly.xml

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

    <!-- Adds dependencies to zip package under lib directory -->
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <useTransitiveFiltering>true</useTransitiveFiltering>
            <outputDirectory>lib</outputDirectory>
                        <outputFileNameMapping>${artifact.groupId}.${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
    <!-- ... -->
</assembly>
Run Code Online (Sandbox Code Playgroud)

我得到了什么

$ ls *bouncycastle*
bouncycastle.bcmail-jdk14-138.jar       org.bouncycastle.bcmail-jdk15on-1.50.jar  org.bouncycastle.bcprov-jdk15-1.45.jar
bouncycastle.bcprov-jdk14-138.jar …
Run Code Online (Sandbox Code Playgroud)

maven-3 maven maven-assembly-plugin

9
推荐指数
2
解决办法
2419
查看次数

标签 统计

maven ×1

maven-3 ×1

maven-assembly-plugin ×1