コンテンツにスキップ

Swagger Codegenの選択的生成

プロジェクト内の*すべての*モデルを生成したくない場合があります。同様に、1つか2つのAPIだけを生成したい場合もあります。その場合、システムプロパティを使用して出力を制御できます。

デフォルトでは、特定のライブラリでサポートされている*すべて*を生成します。一度機能を有効にすると、生成されるコンテンツが制限されます。

ターミナルウィンドウ
1
# generate only models
2
java -Dmodels {opts}
3
4
# generate only apis
5
java -Dapis {opts}
6
7
# generate only supporting files
8
java -DsupportingFiles
9
10
# generate models and supporting files
11
java -Dmodels -DsupportingFiles

生成する特定のファイルを制御するには、必要なもののCSVリストを渡します。

ターミナルウィンドウ
1
# generate the User and Pet models only
2
-Dmodels=User,Pet
3
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)
2
java -Dmodels {opts}
3
4
# generate only models (with tests but no documentation)
5
java -Dmodels -DmodelDocs=false {opts}
6
7
# generate only User and Pet models (no tests and no documentation)
8
java -Dmodels=User,Pet -DmodelTests=false {opts}
9
10
# generate only apis (without tests)
11
java -Dapis -DapiTests=false {opts}
12
13
# generate only apis (modelTests option is ignored)
14
java -Dapis -DmodelTests=false {opts}

選択的生成を使用する場合、特定の生成に必要なテンプレート*のみ*が使用されます。

無視ファイル形式

Swagger Codegenは、おそらくすでに使い慣れている.gitignore.dockerignoreと同様に、.swagger-codegen-ignoreファイルをサポートしています。

無視ファイルを使用すると、--skip-overwriteフラグよりも既存のファイルの上書きをより細かく制御できます。無視ファイルを使用すると、個々のファイルやディレクトリを無視するように指定できます。これは、たとえば、生成されたコードの一部だけが必要な場合に役立ちます。

ターミナルウィンドウ
1
# Swagger Codegen Ignore
2
# Lines beginning with a # are comments
3
4
# This should match build.sh located anywhere.
5
build.sh
6
7
# Matches build.sh in the root
8
/build.sh
9
10
# Exclude all recursively
11
docs/**
12
13
# Explicitly allow files excluded by other rules
14
!docs/UserApi.md
15
16
# Recursively exclude directories named Api
17
# You can't negate files below this directory.
18
src/**/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.cs
23
24
# Exclude a single, nested file explicitly
25
src/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を介して利用できます。