gar*_*560 5 java swagger jersey-2.0 swagger-2.0
配置Swagger 2时有没有办法指定多个包?
BeanConfig beanConfig = new BeanConfig();
beanConfig.setVersion("1.0.0");
beanConfig.setResourcePackage("com.company1.resources ; org.company2.resources");
beanConfig.setScan(true);
Run Code Online (Sandbox Code Playgroud)
BeanConfig.setResourcePackage只接受一个字符串.如果我用空格分隔它们,只考虑第一个空格.如果我尝试使用分号,那么招摇没有找到任何分号.
我有一个带有Jersey 2的Spring Boot应用程序.
我没有在任何地方看到过这种情况,但根据当前Swagger核心(1.5.10)中的代码,您看起来像是用逗号(',')分隔多个包.以下是相关摘录BeanConfig.java:
if (resourcePackage != null && !"".equals(resourcePackage)) {
String[] parts = resourcePackage.split(",");
for (String pkg : parts) {
if (!"".equals(pkg)) {
acceptablePackages.add(pkg);
config.addUrls(ClasspathHelper.forPackage(pkg));
}
}
} else {
allowAllPackages = true;
}
Run Code Online (Sandbox Code Playgroud)
进一步向下看,该allowAllPackages标志使Swagger生成有应用程序类路径中具有JAX-RS注释的所有类的文档.根据您的依赖关系,根本不设置资源包可能是一个选项.但是,使用逗号分隔列表可能更安全.
编辑:
我确实在文档中提到了这一点:
setResourcePackage(字符串)
resourcePackage
设置Swagger应扫描哪些包以获取资源.如果有多个包,则它可以是逗号分隔包的列表.