pom中配置的shaded未生效,导致打包出来的结果
并不是maven中定义的nebula.shaded.guava.common
感谢你的反馈,下个版本改掉
找到问题了
<relocations>
<relocation>
<pattern>com.google.guava</pattern>
<shadedPattern>nebula.shaded.guava.common</shadedPattern>
</relocation>
</relocations>
修改为
<relocations>
<relocation>
<pattern>com.google.common</pattern>
<shadedPattern>nebula.shaded.guava.common</shadedPattern>
</relocation>
</relocations>
麻烦fix并release一下,不然我的项目里没法使用高版本的guava
欢迎你给我们提pr哈
这里没有问题,你可以把你的问题截图出来吗
这个有问题的,guava的包没有被shade掉,你可以maven打包后的结果
unzip -l client-2.0.0-beta.jar | grep google
解决jar包冲突,你可以在引用client时这样:
<dependency>
<groupId>com.vesoft</groupId>
<artifactId>client</artifactId>
<version>${parent.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
然后单独引用高版本的guava包
这样不行的,因为你们把guava的文件直接打到nebula-client.jar里面去了
这样导致我只要用你们的client,就只能用你们jar的guava,而exclusion只能处理简单的依赖的包
你是怎么使用的guava, 我在example中将client的guava包排掉,重新引入18.0版本的guava包,client还是可以正常使用的,而且在example中查看使用到的guava中代码对应的是18.0的。
<dependency>
<groupId>com.vesoft</groupId>
<artifactId>client</artifactId>
<version>${parent.version}</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
你是直接在nebula-client工程里测试的?如果是这样肯定测试不出来,你可以搭建个test项目把nebula-client引入,按你这样排包的方式你试试
看来是这样的,你可以源码编译,暂时不用maven上的jar包
shaded的修改有什么影响吗?我觉得改为把guava包改为shaded后,让api更纯净无污染。一般官方提供的api不这么打包的,不把依赖的包打进自己的包,成为一个fat jar。我猜测你们这样做的目的是为了方便spark,flink无需再添依赖jar,但从api的设计上来说不是很合理
感谢你的贡献,shade里面的包路径确实错的
麻烦你 CLAassistant 下
好的,那这个api这个多久release呢?