Tag Archives: Java && J2EE

Gradle中原生使用BOM(publish)

如果你用过Maven,可能听说过BOM,这是一个解决Java项目版本冲突的有效工具。

在早先的Gradle版本中,是没有原生BOM支持的,只能通过一些很蹩脚的方式引用Maven的BOM。

在5.0+后,提供了platform机制,可以更加"原生“的实现类似BOM的方法,而且更加简洁。

1 在Gradle中定义你的BOM

build.gradle

只有中间的dependencies部分是可能需要调整的
plugins {
id 'java-platform[......]

继续阅读

Maven使用shade插件实现包的自动重命名,以解决依赖冲突

最近在写一个hadoop的job,其中依赖了guava,我需要的版本是27.2-jre

然而,不幸的是,Hadoop集群上是2.7.2,其中也有guava版本,11.0.2

更坑的是,guava在16之后有break change,无法向下兼容。

导致不管怎么运行,都会出现:
Error: com.google.common.hash.Funnels.stringFunnel(Ljava/nio/charset/Charset;)Lcom/google/common/hash[......]

继续阅读