java – 由于输入结束的swagger maven插件没有要映射的内容

我在pom.xml文件中包含安全性定义.当我运行目标mvn compile时,它会抛出异常:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.kongchen:swagger-maven-plugin:3.1.2:generate (default) on project test: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input

我在Swagger Maven插件中包含了安全性定义,如下所示

<securityDefinitions>
  <securityDefinition>
     <json>src/main/resources/securityDefinition.json</json>
  </securityDefinition>
</securityDefinitions>  

我试过${basedir}但仍然得到上述异常.如规范所说,如何解决这个问题呢?

该文件将由getClass().getResourceAsStream读取,因此请注意您配置的路径.我怎样才能满足这个条件?

最佳答案
你需要等到下一个插件发布(3.1.6).他们只是将更改合并到主分支,并解决了您所面临的类路径文件加载问题.插件执行时使用的类加载器无法访问项目的文件,无论是资源还是Java源文件.

下一个版本将有一个< jsonPath>标记以允许访问文件位置和< json>用于类路径文件加载的标记(解决问题).

更新(测试):

如果您不介意,可以使用3.1.6-SNAPSHOT版本.

然后,在你的POM中:

<securityDefinitions>
    <securityDefinition>                            
      <jsonPath>${project.basedir}/securityDefinition.json</jsonPath>
    </securityDefinition>                                                                   
</securityDefinitions>

在JSON文件中,按照作者的说明进行操作:

https://github.com/kongchen/swagger-maven-plugin

转载注明原文:java – 由于输入结束的swagger maven插件没有要映射的内容 - 代码日志