Java 使用多战';s来解析多个scala版本

Java 使用多战';s来解析多个scala版本,java,scala,maven,tomcat,apache-kafka,Java,Scala,Maven,Tomcat,Apache Kafka,我通常使用scala2.10.x。 由于我无法控制的组件的某些限制,我不得不使用kafka客户端版本,但是此版本的kakfa只能用scala 2.9.2版编译,不能用scala 2.10版编译。 注意:我不能使用卡夫卡的较新版本,它不起作用,我无法控制实际的kafka版本,因此我必须使用此客户端版本因此我必须使用卡夫卡客户端0.7.2 所以我有多种选择: 下载0.7.2kafka客户端的源代码,并使用scala2.10进行编译。不幸的是,源代码中的更改太多,无法执行 使用jarajar并更新sc

我通常使用scala
2.10.x
。 由于我无法控制的组件的某些限制,我不得不使用
kafka
客户端版本,但是此版本的
kakfa
只能用scala 2.9.2版编译,不能用scala 2.10版编译。 注意:我不能使用卡夫卡的较新版本,它不起作用,我无法控制实际的
kafka
版本,因此我必须使用此客户端版本因此我必须使用卡夫卡客户端0.7.2

所以我有多种选择:

  • 下载
    0.7.2
    kafka客户端的源代码,并使用scala
    2.10
    进行编译。不幸的是,源代码中的更改太多,无法执行
  • 使用
    jarajar
    并更新
    scala library.jar
    在打包时使用前缀,例如
    scala.*->scala.29.*
    ,然后更新kafka client 0.7.2以从
    scala.29.*
    导入类。我尝试过这个方法,在这里也遇到了问题
  • 这就是我现在要做的-在我的tomcat web服务器中创建另一个
    .war
    ,因为tomcat将使用不同的类加载器加载不同的war,我可以发送我的卡夫卡请求,而不是从我原来的
    war
    发送到我的
    war1
    发送到
    war2
    ,而
    war2
    将是一个简单的web应用程序,它将保存一个简单的
    kafka客户端0.7.2

  • 我的问题:选项3听起来明智吗?我对它的开销有一些想法,如果我向
    localhost
    发送
    GET
    请求,仅仅因为我有多个
    war
    来解决拥有多个类加载器的问题,这有多好/坏?

    最终用scala 2.10编译kafka客户端0.7.2,这并不难,一切都正常