讨论一下Java/Scala jackson和 log4j

s
shuaide
楼主 (未名空间)

讨论一下 写java和scala时候碰到的jackson和 log4j

1. 我办公室里其他项目以前用jackson的,有些被我改写成用gson。因为jackson里面
用到了log4j某些dependencies,把项目改成用multi module的parent pom来统一版本
号的时候很容易有conflict。就算用maven helper来exclude ,https://plugins.
jetbrains.com/plugin/7179-maven-helper, 发现都太烦了。逐个来exclude看不过来,索性不用jackson。

2. 那个log4j也是一样的玩意,我在我自己控制范围内的code用jdk11里面的logging干掉了。可惜spark和很多大数据的framework只支持JDK8的compilation,最后的方案就
是尽量分离scala code(用到spark的)和 java,要么在不同module,甚至不同
service。 然后尽量用scala built in的方法来减少dependencies,比如消灭logging , String.util.isBlank这类的

3. 办公室有些人scala和java互相调用,不是那种只有scala 调用 java 或者只有
java调用scala,maven的compile顺序比如:

net.alchim31.maven
scala-maven-plugin


scala-compile-first

也是烦人。我现在的方案是尽量不要互相call,凡是我经手的项目,能改的就改成尽量用built in的方法,尽量减少maven dependencies 如果允许互相call,是不是只能用
这个插件逐个module来处理?

大家一般都怎么处理这些问题?

w
walkrandom

每个库都有优缺点
只有大家让一让,找个大家都同意的库

circular dependency没有build trick,只有把公用的独立出来