Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分发用Spring构建的库_Java_Spring - Fatal编程技术网

Java 分发用Spring构建的库

Java 分发用Spring构建的库,java,spring,Java,Spring,我正在构建一个使用Spring4.2.4的库,并计划将Spring与该库捆绑在一起,以创建一个包含所有依赖项的自给自足的jar,因为我的一些客户机不使用Maven 但是,一些使用该库的客户机可能已经在其应用程序中使用了不同版本的Spring,有些版本甚至与Spring2.5一样旧。在这种情况下,它们将排除Spring的捆绑版本。那么我如何处理功能兼容性问题呢?例如,Spring 4可以有多个PropertySources,而这在早期版本中是不受支持的。只有在确实需要的情况下,才可以捆绑库中所需的

我正在构建一个使用Spring4.2.4的库,并计划将Spring与该库捆绑在一起,以创建一个包含所有依赖项的自给自足的jar,因为我的一些客户机不使用Maven


但是,一些使用该库的客户机可能已经在其应用程序中使用了不同版本的Spring,有些版本甚至与Spring2.5一样旧。在这种情况下,它们将排除Spring的捆绑版本。那么我如何处理功能兼容性问题呢?例如,Spring 4可以有多个PropertySources,而这在早期版本中是不受支持的。

只有在确实需要的情况下,才可以捆绑库中所需的库并更改其包,以确保在您描述的情况下不会发生冲突或类装入器冲突。如果Maven是您的构建系统,那么您可以使用来实现这一点。在诸如Jersey 2这样的流行库中采用了这种方法,其中guava库类以修改的包名包含在发行版中。

Spring 2.5与Spring 4不兼容,正如您已经指出的,因此如果他们不想使用Spring 4,然后他们就不能使用你的库了——除非你为你的库制作了一个新的版本,可以使用Spring2.5Ah。那我就走那条路。谢谢