Maven private dependencies

2020-05-06 17:10发布

问题:

Is there a way to specify private dependency for a project that will not be visible to others?

What I'm trying to achieve is pretty much similar to what exclusion does, but with one slight difference - user should not be aware of that dependency at all and, thus, won't have to use this exclusion explicitly.

And if this is not possible (which, most likely, is true), then is there any particular reason why?

回答1:

Optional dependencies sound like what you want. Mark a dependency as optional and you'll have it when you build, but users won't automatically have that library included as a transitive dependency.

See Maven - Optional Dependencies and Dependency Exclusions for more details.

'provided' is not the ideal solution here; that means that a dependency is required, but that it will be provided by any user of your artifact. 'optional' means that the dependency is only required for some functionality.