Swagger Codegenの選択的生成
プロジェクト内の*すべての*モデルを生成したくない場合があります。同様に、1つか2つのAPIだけを生成したい場合もあります。その場合、システムプロパティを使用して出力を制御できます。
デフォルトでは、特定のライブラリでサポートされている*すべて*を生成します。一度機能を有効にすると、生成されるコンテンツが制限されます。
1# generate only models2java -Dmodels {opts}3
4# generate only apis5java -Dapis {opts}6
7# generate only supporting files8java -DsupportingFiles9
10# generate models and supporting files11java -Dmodels -DsupportingFiles生成する特定のファイルを制御するには、必要なもののCSVリストを渡します。
1# generate the User and Pet models only2-Dmodels=User,Pet3
4# generate the User model and the supportingFile `StringUtil.java`:5-Dmodels=User -DsupportingFiles=StringUtil.javaAPIおよびモデルのドキュメントとテストの生成を制御するには、オプションにfalseを渡します。APIの場合、これらのオプションは-DapiTests=falseと-DapiDocs=falseです。モデルの場合、-DmodelTests=falseと-DmodelDocs=falseです。これらのオプションはデフォルトでtrueであり、上記の機能オプション(-Dapiなど)の生成を制限しません。
1# generate only models (with tests and documentation)2java -Dmodels {opts}3
4# generate only models (with tests but no documentation)5java -Dmodels -DmodelDocs=false {opts}6
7# generate only User and Pet models (no tests and no documentation)8java -Dmodels=User,Pet -DmodelTests=false {opts}9
10# generate only apis (without tests)11java -Dapis -DapiTests=false {opts}12
13# generate only apis (modelTests option is ignored)14java -Dapis -DmodelTests=false {opts}選択的生成を使用する場合、特定の生成に必要なテンプレート*のみ*が使用されます。
無視ファイル形式
Swagger Codegenは、おそらくすでに使い慣れている.gitignoreや.dockerignoreと同様に、.swagger-codegen-ignoreファイルをサポートしています。
無視ファイルを使用すると、--skip-overwriteフラグよりも既存のファイルの上書きをより細かく制御できます。無視ファイルを使用すると、個々のファイルやディレクトリを無視するように指定できます。これは、たとえば、生成されたコードの一部だけが必要な場合に役立ちます。
例
1# Swagger Codegen Ignore2# Lines beginning with a # are comments3
4# This should match build.sh located anywhere.5build.sh6
7# Matches build.sh in the root8/build.sh9
10# Exclude all recursively11docs/**12
13# Explicitly allow files excluded by other rules14!docs/UserApi.md15
16# Recursively exclude directories named Api17# You can't negate files below this directory.18src/**/Api/19
20# When this file is nested under /Api (excluded above),21# this rule is ignored because parent directory is excluded by previous rule.22!src/**/PetApiTests.cs23
24# Exclude a single, nested file explicitly25src/IO.Swagger.Test/Model/AnimalFarmTests.cs.swagger-codegen-ignoreファイルは、出力ディレクトリのルートに存在する必要があります。
最初のコード生成時に、生成される出力をさらに制御するために、CLIオプション--ignore-file-override=/path/to/ignore_fileを渡すこともできます。これは完全な上書きであり、コードを再生成する際に出力ディレクトリ内の.swagger-codegen-ignoreファイルを上書きすることに注意してください。
.swagger-codegen-ignoreファイルのIntelliJでのエディターサポートは、.ignore pluginを介して利用できます。