当前位置: 首页 > 工具软件 > Metacat > 使用案例 >

关于metacat搭建和问题解决

衡翰翮
2023-12-01

网上全部只有metacat的介绍,没有具体的安装方式

https://github.com/Netflix/metacat.git 源码下载

下载后9.4.1改成8.8.1
gorylenko 插件注释掉
polaris报错的话可以删除整个模块
functionalTest 注释掉
gradlew clean build -x test 编译成功

部署会报错swagger3的bug

第一种解决方案:

配置文件application.yml 里面测试的时候需要页面的时候需要
springfox:
  documentation:
open-api:
  v3:
    path: /test/v2/api-docs(包名:一个test(完全不要这个配置	swagger),一个ROOT(要配置),同时放2个war上去一起启动,这是一个BUG)
swagger:
  enabled: true 
plugin:
config:
  location:  读取采集的配置文件

javax.jdo.option.name=mysql-56-db          这个才是数据源编号
connector.name=mysql           这个是数据源类型

这样可以正常启动,有2个war包, 

第二种解决方式
找到SwaggerConfig 类,注释掉@ConditionalOnProperty 这个注解
把配置文件build.gradle 文件中的mavenCentral() 换成jcenter()

dependencySet(group: “io.swagger”, version: “1.6.2”) {
entry “swagger-annotations”
entry “swagger-jersey2-jaxrs”
entry “swagger-models” (新增)
}

第三种不需要页面
注释掉swagger 框架,直接启动main方法,接口可调用验证,不需要页面

@ConditionalOnProperty 注解详情
用来指定配置文件是否生效

例子:我们开发环境中希望使用swagger来生成api在线文档,但是在生产环境中则希望能够禁用swagger功能,这时@ConditionalOnProperty就排上用场了。

在SwaggerConfig中配置ConditionalOnProperty,然后在配置文件application.properties中配置swagger.config.enabled即可灵活控制swagger的开启和关闭。具体代码如下:

// 文件: SwaggerConfig.java
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "swagger.config", value = "enabled", havingValue = "true")  //只有当配置文件配置了swagger.config.enabled=true时,swagger才生效
public class SwaggerConfig {
  ...//省略具体配置项
}

其他

# 文件:application.properties
swagger.config.enabled=true
 类似资料: