У меня есть этот JavaJaxRs словарь со своими шаблонами:Howto использование пользовательских шаблонов в Swagger
/templates/JavaJaxRs
Я редактировал некоторые из них. И хочу, чтобы использовать их для моего поколения API (код был вдохновлен от этого подхода от https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen-maven-plugin/src/main/java/io/swagger/codegen/plugin/CodeGenMojo.java):
System.out.println("Generating API for: " + location);
DefaultGenerator generator = new DefaultGenerator();
Swagger swagger = new SwaggerParser().read(location);
CodegenConfig config = CodegenConfigLoader.forName(this.language);
config.setOutputDir(new File(this.apiGeneratedSrcPath).getPath());
if (null != templateDirectory) {
config.additionalProperties().put(TEMPLATE_DIR_PARAM, templateDirectory);
}
if (null != modelPackage) {
config.additionalProperties().put(MODEL_PACKAGE_PARAM, modelPackage);
}
if (null != apiPackage) {
config.additionalProperties().put(API_PACKAGE_PARAM, apiPackage);
}
if (null != invokerPackage) {
config.additionalProperties().put(INVOKER_PACKAGE_PARAM, invokerPackage);
}
if (configOptions != null) {
for (CliOption langCliOption : config.cliOptions()) {
if (configOptions.containsKey(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(),
configOptions.get(langCliOption.getOpt()));
}
}
}
if (null != configurationFile) {
Config genConfig = ConfigParser.read(configurationFile);
if (null != genConfig) {
for (CliOption langCliOption : config.cliOptions()) {
if (genConfig.hasOption(langCliOption.getOpt())) {
config.additionalProperties().put(langCliOption.getOpt(), genConfig.getOption(langCliOption.getOpt()));
}
}
} else {
throw new RuntimeException("Unable to read configuration file");
}
}
ClientOptInput input = new ClientOptInput().opts(new ClientOpts()).swagger(swagger);
input.setConfig(config);
generator.opts(input).generate();
Как-то я всегда получаю код, сгенерированный со стандартным файлом шаблона.
UPDATE:
Когда я правильно помню, я имел условную ошибку на:
if(null != templateDirectory)
config.additionalProperties().put(TEMPLATE_DIR_PARAM, templateDirectory);
или где-то еще, но с правом состоянии, код работает, как предполагалось.
Я оставляю вопрос здесь, возможно, это поможет некоторым другим пользователям.
я думаю, я делаю это с 'config.additionalProperties() ставить (TEMPLATE_DIR_PARAM, templateDirectory); ' – Gobliins
У меня было неправильное условие, в моем коде, поэтому строка для адаптации параметров wsa не выполняется. Сейчас это работает хорошо. – Gobliins