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.java
APIおよびモデルのドキュメントとテストの生成を制御するには、オプションに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を介して利用できます。