Java 17
Spring フレームワーク 6
スプリングブーツ3
動的ルーティング
Springハンドラーマッピングに組み込まれたルートマッチング
HTTP リクエストでのルート マッチング (パス、メソッド、ヘッダー、ホストなど…)
一致するルートをスコープとするフィルター
フィルターはダウンストリームの HTTP リクエストと HTTP レスポンスを変更できます (ヘッダーの追加/削除、パラメーターの追加/削除、パスの書き換え、パスの設定、Hystrix など)。
API または構成主導型
ルートを構成するための Spring Cloud DiscoveryClient
をサポート
<stdin> の未解決のディレクティブ - include::https:///raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/docs/modules/ROOT/partials/building.adoc[]
Spring Cloud は、制限のない Apache 2.0 ライセンスの下でリリースされ、非常に標準的な Github 開発プロセスに従い、問題に対して Github トラッカーを使用し、プル リクエストをメインにマージします。些細なことでも投稿したい場合は、以下のガイドラインに従ってください。
重要なパッチやプル リクエストを受け入れる前に、コントリビューター ライセンス契約に署名していただく必要があります。寄稿者の同意書に署名しても、メイン リポジトリへのコミット権限が誰にも付与されるわけではありませんが、寄稿を受け入れることができ、寄稿を受け入れた場合には著者のクレジットが得られることを意味します。アクティブなコントリビューターは、コア チームに参加するよう求められ、プル リクエストをマージする機能が与えられる場合があります。
このプロジェクトは、貢献者規約の行動規範に準拠しています。参加することにより、この規範を遵守することが期待されます。容認できない行為は [email protected] に報告してください。
これらはいずれもプル リクエストに必須ではありませんが、すべて役に立ちます。元のプル リクエストの後、マージ前に追加することもできます。
Spring Framework のコード形式規則を使用します。 Eclipse を使用している場合は、Spring Cloud Build プロジェクトからeclipse-code-formatter.xml
ファイルを使用してフォーマッタ設定をインポートできます。 IntelliJ を使用している場合は、Eclipse コード フォーマッタ プラグインを使用して同じファイルをインポートできます。
すべての新しい.java
ファイルに、少なくとも自分を識別する@author
タグを含む単純な Javadoc クラス コメントが含まれていることを確認してください。また、できればクラスの目的に関する少なくとも段落を含めてください。
ASF ライセンス ヘッダー コメントをすべての新しい.java
ファイルに追加します (プロジェクト内の既存のファイルからコピーします)。
大幅に (表面的な変更以上に) 変更する .java ファイルに、自分自身を@author
として追加します。
いくつかの Javadoc を追加し、名前空間を変更する場合はいくつかの XSD doc 要素を追加します。
いくつかの単体テストも非常に役立ちます。誰かがそれを行う必要があります。
他に誰もあなたのブランチを使用していない場合は、現在のメイン (またはメイン プロジェクト内の他のターゲット ブランチ) に対してブランチをリベースしてください。
コミット メッセージを作成するときは、次の規則に従ってください。既存の問題を修正する場合は、コミット メッセージの最後にFixes gh-XXXX
を追加してください (XXXX は問題番号です)。
Spring Cloud Build には、一連の checkstyle ルールが付属しています。これらはspring-cloud-build-tools
モジュールで見つけることができます。モジュール内の最も注目すべきファイルは次のとおりです。
━── ソース §── チェックスタイル │ └── checkstyle-suppressions.xml (3) ━──メイン └── リソース §── checkstyle-header.txt (2) ━── checkstyle.xml (1)
デフォルトの Checkstyle ルール
ファイルヘッダーの設定
デフォルトの抑制ルール
Checkstyle ルールはデフォルトでは無効になっています。 checkstyle をプロジェクトに追加するには、次のプロパティとプラグインを定義するだけです。
<プロパティ> <maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError> (1) <maven-checkstyle-plugin.failsOnViolation>true </maven-checkstyle-plugin.failsOnViolation> (2) <maven-checkstyle-plugin.includeTestSourceDirectory>true </maven-checkstyle-plugin.includeTestSourceDirectory> (3) </プロパティ> <ビルド> <プラグイン> <プラグイン> (4) <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-maven-plugin</artifactId> </プラグイン> <プラグイン> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </プラグイン> </プラグイン> <報告> <プラグイン> <プラグイン> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </プラグイン> </プラグイン> </レポート> </ビルド>
Checkstyle エラーによりビルドが失敗する
Checkstyle 違反によりビルドが失敗する
Checkstyle はテストソースも分析します
Checkstyle フォーマット規則のほとんどを通過するようにコードを再フォーマットする Spring Java Format プラグインを追加します。
checkstyle プラグインをビルドとレポートのフェーズに追加します。
一部のルールを抑制する必要がある場合 (たとえば、行の長さを長くする必要がある)、抑制を含むファイルを${project.root}/src/checkstyle/checkstyle-suppressions.xml
の下に定義するだけで十分です。例:
<?xml バージョン="1.0"?> <!DOCTYPE の抑制 PUBLIC "-//パピークロール//DTD抑制1.1//EN" 「https://www.puppycrawl.com/dtds/suppressions_1_1.dtd」 <抑制> <suppress files=".*ConfigServerApplication.java" checks="HideUtilityClassConstructor"/> <suppress files=".*ConfigClientWatch.java" checks="LineLengthCheck"/> </抑制>
${spring-cloud-build.rootFolder}/.editorconfig
と${spring-cloud-build.rootFolder}/.springformat
プロジェクトにコピーすることをお勧めします。こうすることで、いくつかのデフォルトの書式設定ルールが適用されます。これを行うには、次のスクリプトを実行します。
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/.editorconfig -o .editorconfig
$ touch .springformat
Intellij をセットアップするには、コーディング規約、検査プロファイルをインポートし、checkstyle プラグインをセットアップする必要があります。次のファイルは Spring Cloud Build プロジェクトにあります。
━── ソース §── チェックスタイル │ └── checkstyle-suppressions.xml (3) ━──メイン └── リソース §── checkstyle-header.txt (2) §── checkstyle.xml (1) ━── インテリジ §── Intellij_Project_Defaults.xml (4) ━── Intellij_Spring_Boot_Java_Conventions.xml (5)
デフォルトの Checkstyle ルール
ファイルヘッダーの設定
デフォルトの抑制ルール
Checkstyle ルールのほとんどを適用する Intellij のプロジェクトのデフォルト
Checkstyle ルールのほとんどを適用する Intellij のプロジェクト スタイル規則
File
→ Settings
→ Editor
→ Code style
に移動します。そこで、 Scheme
セクションの横にあるアイコンをクリックします。そこで、 Import Scheme
値をクリックし、 Intellij IDEA code style XML
オプションを選択します。 spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
ファイルをインポートします。
File
→ Settings
→ Editor
→ Inspections
に移動します。そこで、 Profile
セクションの横にあるアイコンをクリックします。そこで、「 Import Profile
をクリックし、 spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
ファイルをインポートします。
Intellij を Checkstyle と連携させるには、 Checkstyle
プラグインをインストールする必要があります。 JUnit アサーションを自動的に変換するには、 Assertions2Assertj
もインストールすることをお勧めします。
File
→ Settings
→ Other settings
→ Checkstyle
に移動します。 Configuration file
セクションの+
アイコンをクリックします。そこでは、checkstyle ルールをどこから選択するかを定義する必要があります。上の画像では、複製された Spring Cloud Build リポジトリからルールを選択しています。ただし、Spring Cloud Build の GitHub リポジトリ (たとえば、 checkstyle.xml
の場合: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
) を指定することはできます。 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
)。次の変数を指定する必要があります。
checkstyle.header.file
- spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
されたリポジトリ内またはhttps://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
URL。
checkstyle.suppressions.file
- デフォルトの抑制。クローンしたリポジトリ内またはhttps://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
経由で、Spring Cloud Build のspring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
ファイルを指定してください。 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
URL。
checkstyle.additional.suppressions.file
- この変数はローカル プロジェクトの抑制に対応します。たとえば、 spring-cloud-contract
に取り組んでいます。次に、 project-root/src/checkstyle/checkstyle-suppressions.xml
フォルダーをポイントします。 spring-cloud-contract
の例は次のようになります: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
。
重要 | 運用ソースとテスト ソースにチェックスタイル ルールを適用するため、 Scan Scope All sources に設定することを忘れないでください。 |
Spring Cloud Build には、 Java クラスパス上の重複および競合するクラスとリソースにフラグを立てることができるbasepom:duplicate-finder-maven-plugin
が導入されています。
Duplicate finder はデフォルトで有効になっており、Maven ビルドのverify
フェーズで実行されますが、プロジェクト内で有効になるのは、プロジェクトのpom.xml
のbuild
セクションにduplicate-finder-maven-plugin
追加した場合のみです。
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
他のプロパティについては、プラグインのドキュメントに記載されているようにデフォルトを設定しました。
これらは簡単にオーバーライドできますが、選択したプロパティの値にduplicate-finder-maven-plugin
プレフィックスを付けて設定します。たとえば、ビルドで重複チェックをスキップするにはduplicate-finder-maven-plugin.skip
true
に設定します。
セットアップにignoredClassPatterns
またはignoredResourcePatterns
を追加する必要がある場合は、プロジェクトのプラグイン構成セクションに必ず追加してください。
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
< configuration >
< ignoredClassPatterns >
< ignoredClassPattern >org.joda.time.base.BaseDateTime</ ignoredClassPattern >
< ignoredClassPattern >.*module-info</ ignoredClassPattern >
</ ignoredClassPatterns >
< ignoredResourcePatterns >
< ignoredResourcePattern >changelog.txt</ ignoredResourcePattern >
</ ignoredResourcePatterns >
</ configuration >
</ plugin >
</ plugins >
</ build >