我在pom.xml
文件中包含安全定义。当我运行目标mvn compile
时,它会引发异常:
org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标com.github.kongchen:swagger-maven-plugin:3.1.2:在项目测试中生成(默认):com.fasterxml.jackson.databind.JsonMappingException :由于输入结束而没有要映射的内容
我在Swagger Maven插件中包含了安全性定义,如下所示
<securityDefinitions>
<securityDefinition>
<json>src/main/resources/securityDefinition.json</json>
</securityDefinition>
</securityDefinitions>
我尝试使用${basedir}
但仍然获得上述异常。如规范所说,如何解决这个问题?
该文件将由getClass().getResourceAsStream
读取,因此请注意您配置的路径。我怎么能满足这个条件?
答案 0 :(得分:2)
您需要等待下一个插件发布(3.1.6)。他们只是将更改合并到主分支,并解决了您所面临的类路径文件加载问题。插件执行时使用的类加载器无法访问项目的文件,无论是资源还是Java源文件。
下一个版本将有<jsonPath>
标记,以允许访问文件位置和<json>
标记以加载类路径文件(解决问题)。
更新(已测试):
如果您不介意,可以使用3.1.6-SNAPSHOT版本。
然后,在你的POM中:
<securityDefinitions>
<securityDefinition>
<jsonPath>${project.basedir}/securityDefinition.json</jsonPath>
</securityDefinition>
</securityDefinitions>
在JSON文件中,请按照作者的说明进行操作: