Howto verwenden von benutzerdefinierten Vorlagen in Fors

Habe ich diese JavaJaxRs Wörterbuch mit meiner Vorlagen:

/templates/JavaJaxRs

Bearbeitete ich einige von Ihnen. Und die Sie nutzen wollen, für meine API-generation (Code wurde inspiriert von diesem Ansatz aus 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();

Irgendwie bekomme ich immer den generierten code mit der standard-Vorlage-Datei.

UPDATE:

Wenn ich mich richtig erinnere, hatte ich eine bedingte Fehler auf:

if(null != templateDirectory)
    config.additionalProperties().put(TEMPLATE_DIR_PARAM, templateDirectory);

oder irgendwo sonst, aber mit der richtigen Zustand, war der code wie vorgesehen funktioniert.

Lass ich die Frage hier bleiben, vielleicht wird es helfen, einige andere Benutzer.

  • Ich möchten, verwenden Sie benutzerdefinierte Vorlagen mit Nswagger in ASP .Net Core. Ich habe viele Dinge versucht, aber es funktioniert nicht. Sie haben dies getan, in java aber lassen Sie mich bitte wissen, wenn Sie eine Idee haben, über diese .Net Core. Ich bin neu für Nswagger
  • Ich habe keine Erfahrung mit Nswagger, so kann ich dir nicht helfen. Aber Fors docs aktualisiert wurden und wenn diese nicht helfen, könnte man eine neue Frage auf, DAMIT über dieses Thema (wenn Sie nicht bereits haben).
InformationsquelleAutor Gobliins | 2015-10-30
Schreibe einen Kommentar