shade打包后对于META-INF/services数据丢失

文章目录

GeoTools 中的 ReferencingFactoryFinder 类用于查找和获取 CRS(坐标参考系统)工厂类实例,其主要查找路径和实现机制如下:

  1. 它会查找所有 META-INF/services/目录下名为 org.opengis.referencing.Factory 的文件。
  2. 这些文件通过 java.util.ServiceLoader 机制存放着可 plug-in 的坐标系统工厂类名。
  3. GeoTools 会默认在其 jar 包中添加一些内置的坐标系统工厂类到这个文件中。
  4. 用户也可以通过放入额外的 jar 包,在自己的 META-INF/services 中新增工厂类。
  5. ReferencingFactoryFinder 会加载这些工厂类,并缓存到内部的工厂 Map 中。
  6. 获取工厂时,则直接从 Map 返回,不需要重新扫描。
  7. 如果工厂类不存在,会抛出 FactoryNotFoundException 异常。

使用特定访问