我们的项目计划将风暴从0.10.0升级到1.0.2。
在这些版本之间,风暴已将所有包名从backtype
更改为org.apache
现在我们使用了一些第三方风暴依赖,例如storm-jms,https://github.com/HolmesNL/kafka-spout等。
其中一些项目计划很快升级到1.0.2,但有些项目的路线图没有。
因此,当我们在pom.xml中升级storm-version时,所有这些第三方依赖项都会导致编译错误,因为它们不再找到backtype.*
个包。
在这种情况下,最好的策略是什么?
是否在某处发布了maven-trick来自动更改软件包名称?
答案 0 :(得分:2)
在你的pom中,你可以添加课程重定位(https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html)
您必须使用的模式在以下课程中 - https://github.com/apache/storm/blob/master/storm-rename-hack/src/main/java/org/apache/storm/hack/StormShadeRequest.java
答案 1 :(得分:0)
来自Storm网页(https://storm.apache.org/releases/1.0.0/index.html):
请注意
在最新版本中,类包已更改为" backtype.storm" to" org.apache.storm"所以使用旧版本编译的拓扑代码不会像在那样在Storm 1.0.0上运行。通过以下配置可以实现向后兼容性
client.jartransformer.class: "org.apache.storm.hack.StormShadeTransformer"
如果要运行使用旧版本storm编译的代码,则需要在风暴安装中添加上述配置。配置应添加到用于提交拓扑的机器中。