Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 替换可传递的依赖项构建maven fat jar_Java_Maven_Maven Assembly Plugin_Maven Shade Plugin - Fatal编程技术网

Java 替换可传递的依赖项构建maven fat jar

Java 替换可传递的依赖项构建maven fat jar,java,maven,maven-assembly-plugin,maven-shade-plugin,Java,Maven,Maven Assembly Plugin,Maven Shade Plugin,在创建胖罐子时,我试图用最新的依赖项替换可传递的依赖项。但是每次旧的依赖项包含在jar中时。我尝试了组装插件和着色插件。这是我的pom中的一个片段- <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-10_2.11</artifactId> <version>

在创建胖罐子时,我试图用最新的依赖项替换可传递的依赖项。但是每次旧的依赖项包含在jar中时。我尝试了组装插件和着色插件。这是我的pom中的一个片段-

<dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
        <version>2.3.1</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.11</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>0.10.2.0</version>
    </dependency>

org.apache.spark
spark-streaming-kafka-0-10_2.11
2.3.1
编译
org.apache.kafka
卡夫卡2.11
org.apache.kafka
卡夫卡2.11
0.10.2.0
着色插件片段-

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
                <artifactSet>
                    <excludes>
                        <exclude>org.apache.kafka:kafka-clients:*</exclude>
                    </excludes>
                </artifactSet>
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

org.apache.maven.plugins
maven阴影插件
3.0.0
org.apache.kafka:kafka客户端:*
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
包裹
阴凉处

任何帮助都将不胜感激。

尝试重新排序依赖项

将依赖项与所需版本保持在依赖项之上,通过传递依赖项将其包含在依赖项中

做几次mvn dependency:tree,使其正确

例如:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <version>0.10.2.0</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
    <version>2.3.1</version>
    <scope>compile</scope>
    <!-- <exclusions>
    <exclusion>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        </exclusion>
    </exclusions> -->
</dependency>

org.apache.kafka
卡夫卡2.11
0.10.2.0
org.apache.spark
spark-streaming-kafka-0-10_2.11
2.3.1
编译
参考:

1.https://stackoverflow.com/questions/31740785/why-order-of-maven-dependencies-matter 2.https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies
您是否尝试了
dependency:tree
命令以查看谁链接到了错误的版本?这是追踪这些东西最简单的方法。然后您可以
排除
可传递依赖项。是的,我排除了!Spark-streaming-kafka-0-10_2.11添加了该依赖项,但即使从该依赖项中排除了可传递依赖项,可传递依赖项仍然会打包到胖罐子中。我已经展示了我是如何做的。请在你的问题中添加
依赖项:树。
1. https://stackoverflow.com/questions/31740785/why-order-of-maven-dependencies-matter
2. https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies