pulsar为防止netty等版本冲突,使用maven-shade-plugin(可以参考https://blog.csdn.net/yangguosb/article/details/80619481)进行了转换,
转换包的列表可以/pulsar-client/pom.xml
<plugin>
<!-- Shade all the dependencies to avoid conflicts -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>${shadePluginPhase}</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<createDependencyReducedPom>true</createDependencyReducedPom>
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
<minimizeJar>false</minimizeJar>
<artifactSet>
<includes>
<include>org.apache.pulsar:pulsar-client-original</include>
<include>org.apache.pulsar:pulsar-transaction-common</include>
<include>org.apache.bookkeeper:*</include>
<include>org.apache.commons:commons-lang3</include>
<include>commons-codec:commons-codec</include>
<include>commons-collections:commons-collections</include>
<include>org.asynchttpclient:*</include>
<include>io.netty:netty-codec-http</include>
<include>io.netty:netty-transport-native-epoll</include>
<include>org.reactivestreams:reactive-streams</include>
<include>com.typesafe.netty:netty-reactive-streams</include>
<include>org.javassist:javassist</include>
<include>com.google.guava:*</include>
<include>org.checkerframework:*</include>
<include>com.google.code.findbugs:*</include>
<include>com.google.errorprone:*</include>
<include>com.google.j2objc:*</include>
<include>com.google.code.gson:gson</include>
<include>com.fasterxml.jackson.core</include>
<include>com.fasterxml.jackson.module</include>
<include>com.fasterxml.jackson.core:jackson-core</include>
<include>com.fasterxml.jackson.dataformat</include>
<include>io.netty:*</include>
<include>io.perfmark:*</include>
<include>org.eclipse.jetty:*</include>
<include>com.yahoo.datasketches:*</include>
<include>commons-*:*</include>
<include>io.swagger:*</include>
<include>io.airlift:*</include>
<include>org.apache.pulsar:pulsar-common</include>
<include>com.yahoo.datasketches:sketches-core</include>
<include>org.objenesis:*</include>
<include>org.yaml:snakeyaml</include>
<include>org.apache.avro:*</include>
<!-- Avro transitive dependencies-->
<include>com.thoughtworks.paranamer:paranamer</include>
<include>org.apache.commons:commons-compress</include>
<include>org.tukaani:xz</include>
<!-- Issue #6834, Since Netty ByteBuf shaded, we need also shade this module -->
<include>org.apache.pulsar:pulsar-client-messagecrypto-bc</include>
</includes>
但orginal的jar也发布到maven central了,如下图:
生产环境可以选择shaded,但如果分析和学习pulsar,建议选择original,否则很多debug都进行不下去。