使用 Maven 中的 Shade 重定位重构导入语句

whi*_*fin 5 java intellij-idea maven maven-shade-plugin

我一直在使用 Shade 将依赖项从 重新定位com.package.xcom.package.y; 当我使用 Maven 构建时,它会抱怨由于类型不兼容 - 所以我必须更改代码中的 import 语句以匹配com.package.y.

这真的是解决这个问题的唯一方法吗?更改导入导致 IntelliJ 抱怨,并且基本上破坏了 IDE 集成。Shade 没有办法修改导入吗?

Idc*_*cmp 0

阴影插件的主要用例是生成一个 uber-jar,同时重新定位其中的一些包以防止冲突。一般来说,你不想针对 uberjar 进行开发。

如果您确实想针对您的阴影罐子进行开发(或者您只是使用阴影来重新定位现有罐子),那么您需要将您的阴影罐子列为原始罐子的替代品,我想这可能会需要你清理循环依赖。

  • 是的,我正在尝试将杰克逊与我的罐子捆绑在一起(长话短说)。 (2认同)
  • 所以你是说阴影应该自动更新导入?每当我这样做后运行测试时,它都会抱怨我的包与 com.fasterxml 的类型错误 (2认同)