我有一段代码是适用于其他解决方案的代码(例如:A,B,C)。用户选择他们将在他们的项目中使用哪种解决方案(只有一种)(通过此适配器)。显然,我仍然需要用A,B,C依赖关系编译我的代码。但是我不想在A,B,C上都有compile
依赖关系 - 例如,如果用户选择解决方案A,他不需要包含B或C.Maven:可选提供的范围?
我应该声明A,B,C依赖项在我的POM为:
provided
provided
,但optional
- 刚从POM 删除
换句话说:的确provided
意味着用户必须在其运行时提供实现?
Thanx!
编辑:类似this question
换句话说,“提供但可选”没有意义? '提供'是否意味着用户必须提供实现? – igr
这取决于你的代码,但大多数答案是肯定的。如果未提供依赖关系,那么您很可能会发现类没有发现异常,尽管您可能可以根据您的应用程序的配置进行编码。一般来说,这有点困难。可选的依赖关系并不意味着这一点。 –