The server module has a dependency on lucene spatial3d library but it is never used. The only dependency on that library happens in the spatial module which is accessed via the server module at the moment. There might be a better way to handle this dependency so opening this issue to track it.
server/src/main/java/module-info.java
exports org.elasticsearch.index.query.functionscore;
    exports org.elasticsearch.index.query.support;
    exports org.elasticsearch.index.recovery;
    exports org.elasticsearch.index.refresh;
    exports org.elasticsearch.index.reindex;
    exports org.elasticsearch.index.search;
    exports org.elasticsearch.index.search.stats;
    exports org.elasticsearch.index.seqno;
    exports org.elasticsearch.index.shard;
    exports org.elasticsearch.index.similarity;
    exports org.elasticsearch.index.snapshots;
    exports org.elasticsearch.index.snapshots.blobstore;
    exports org.elasticsearch.index.stats;
    exports org.elasticsearch.index.store;
    exports org.elasticsearch.index.termvectors;
    exports org.elasticsearch.index.translog;
    exports org.elasticsearch.index.warmer;
    exports org.elasticsearch.indices;
    exports org.elasticsearch.indices.analysis;
    exports org.elasticsearch.indices.breaker;
    exports org.elasticsearch.indices.cluster;
    exports org.elasticsearch.indices.fielddata.cache;
    exports org.elasticsearch.indices.recovery;
    exports org.elasticsearch.indices.recovery.plan;
    exports org.elasticsearch.indices.store;
    exports org.elasticsearch.ingest;
    exports org.elasticsearch.lucene.analysis.miscellaneous;
    exports org.elasticsearch.lucene.grouping;
    exports org.elasticsearch.lucene.queries;
    exports org.elasticsearch.lucene.search.uhighlight;