JSONDoc在多模块项目中没有检测模型的@ApiObject注释

时间:2016-01-14 04:20:22

标签: spring-boot jsondoc

使用Spring Boot,JsonDoc可以很好地检测所有控制器,但它不会检测位于另一个maven模块中的模型。

我们的项目有两个模块:

  • 我的应用内芯
  • MY-APP-IMPL

主控制器以及属性文件,例如application.properties位于 my-app-core 中,以下是jsondoc的配置:

# mandatory configuration
jsondoc.version=1.0
jsondoc.basePath=http://localhost:8090
jsondoc.packages[0]=com.myapp
jsondoc.packages[1]=com.myapp.api.docs.GlobalDocumentation
jsondoc.packages[2]=com.myapp.api.docs.ChangeLogDocumentation
jsondoc.packages[3]=com.myapp.api.jsonapi.model
# optional configuration
jsondoc.playgroundEnabled=true
jsondoc.displayMethodAs=URI

com.myapp.api.jsonapi.model 位于另一个模块 my-app-impl 中,JSONDoc没有检测到它们。

以下是带注释的示例模型

@JsonApiResource(type="advisers")
@ApiObject(description = "Adviser model")
public class Adviser {
    @JsonApiId
    @ApiObjectField(description = "ID")
    private Integer id;
    @ApiObjectField(description = "Adviser's name")
    private String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题。我的Jsondoc版本是1.2.19。
我在GitHub上发现了这个问题:
https://github.com/fabiomaffioletti/jsondoc/issues/244
原因可能是相同的。
该代码只检测带有@RequestMapping批注的方法,如果不将其用作方法的参数或返回值,则无法找到Adviser对象。
希望这会有所帮助!