我应该创建一个新的spring-boot启动器还是使用可选的依赖项?

时间:2018-02-20 14:25:53

标签: spring-boot jodconverter spring-boot-starter

我目前正在维护jodconverter项目的分支,它提供了一个spring-boot-starter模块,允许基于spring-boot的应用程序使用Open / Libre Office安装(在同一台服务器上)自动化文档转换。

现在,该项目已经成长,一个新的模块诞生了,名为jodconverter-online。该模块将转换请求发送到LibreOffice Online服务器,现在我想创建一个spring-boot启动器来支持这个新模块。

当前的jodconverter-local(取决于当前的jodconverter-spring-boot-starter)与jodconverter-online模块没有相同的依赖关系。这就是为什么它们首先是两个独立的模块。

所以我的问题是:

我是否应该创建一个新的jodconverter-online-spring-boot-starter,或者是否可以(以及如何)修改当前的启动项目,根据用户的需要使依赖项可选。

现在我把它全部放在current starter project(在OSS快照存储库中可用作4.2.0-SNAPSHOT),但我这样做是错误的,因为它会自动添加依赖关系jodconverter-local和jodconverter-online模块。

1 个答案:

答案 0 :(得分:1)

您可能希望将依赖项设置为 jodconverter-local jodconverter-online 可选,您只需要将compile替换为{{1}在Gradle构建文件中。

显然,当依赖项成为可选项时,开发人员必须选择其中一个选项并将其添加到项目的依赖项(除了启动程序之外)。

如果唯一的附加依赖项是 jodconverter-local jodconverter-online ,那没什么大不了的。但是,如果必须为每种情况添加更多依赖项,那么您可以考虑创建一个新的启动程序来封装这些依赖项。

对于AutoConfigurations,我没有看到你做了什么问题,因为只有当类路径中存在相应的类时才使用compileOnly来触发自动配置。