Executable JAR ignores its own Class-Path attribute
Answering my own question:
Adding arbitrary entries to
Class-Path
is fine on its own. The problem arises when you enable JAR indexing using:<configuration> <archive> <index>true</index> </archive> </configuration>
Maven will omit your entries from
META-INF/INDEX.LIST
.When you use the JAR at runtime, Java will look at INDEX.LIST for finding classes, not MANIFEST.MF.
Because your entries are missing from INDEX.LIST, they will not be found by the classloader, no matter what the manifest says.
A simple workaround is to disable JAR indexing. I'm not sure how to inject an arbitrary Class-Path
with indexing enabled.