コントリビュートする
Spring Cloud は、制限のない Apache 2.0 ライセンスでリリースされており、課題には Github トラッカーを使用し、プルリクエストをメインにマージするなど、非常に標準的な Github 開発プロセスに従っています。些細なことでも貢献したい場合は、遠慮なく以下のガイドラインに従ってください。
開発者原産地証明書 (DCO)
すべてのコミットには、各コミットメッセージの最後に Signed-off-by トレーラーを含めて、コントリビューターが開発者証明書に同意していることを示す必要があります。詳細については、ブログ投稿 Hello DCO、さようなら CLA: Spring への貢献を簡素化 (英語) を参照してください。
行動規範
このプロジェクトは、ContributorCovenant の行動規範 [GitHub] (英語) に準拠しています。参加することにより、この規範を支持することが期待されます。許容できない動作を [ メール保護 ] (英語) に報告してください。
コード規約とハウスキーピング
これらはいずれもプルリクエストに必須ではありませんが、すべて役に立ちます。これらは、元のプルリクエストの後、マージの前に追加することもできます。
Spring Framework コード形式の規則を使用してください。Eclipse を使用する場合は、Spring Cloud Build (英語) プロジェクトから
eclipse-code-formatter.xmlファイルを使用してフォーマッター設定をインポートできます。IntelliJ を使用している場合は、Eclipse コードフォーマッタープラグイン (英語) を使用して同じファイルをインポートできます。すべての新しい
.javaファイルに、少なくともあなたを識別する@authorタグ、できればクラスの目的に関する段落を含む単純な Javadoc クラスコメントが含まれていることを確認してください。ASF ライセンスヘッダーコメントをすべての新しい
.javaファイルに追加します (プロジェクト内の既存のファイルからコピーする)大幅に変更する .java ファイルに
@authorとして自分自身を追加します(外観上の変更以上のもの)。いくつかの Javadoc を追加し、名前空間を変更する場合は、いくつかの XSDdoc 要素を追加します。
いくつかの単体テストも大いに役立ちます。誰かがそれをしなければなりません。
他に ブランチを使用している人がいない場合は、現在のメイン (またはメインプロジェクト内の他のターゲットブランチ) に対してそれをリベースしてください。
コミットメッセージを作成するときは、次の規則 (英語) に従ってください。既存の課題を修正する場合は、コミットメッセージの最後に
Fixes gh-XXXXを追加してください(XXXX は課題番号です)。
Checkstyle
Spring Cloud Build には、一連の checkstyle ルールが付属しています。これらは spring-cloud-build-tools モジュールにあります。モジュール内の最も注目すべきファイルは次のとおりです。
└── src ├── checkstyle │ └── checkstyle-suppressions.xml (3) └── main └── resources ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
| 1 | デフォルトの Checkstyle ルール |
| 2 | ファイルヘッダーの設定 |
| 3 | デフォルトの抑制ルール |
Checkstyle 構成
Checkstyle ルールはデフォルトで無効になっています。プロジェクトに checkstyle を追加するには、次のプロパティとプラグインを定義するだけです。
<properties>
<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)
</properties>
<build>
<plugins>
<plugin> (4)
<groupId>io.spring.javaformat</groupId>
<artifactId>spring-javaformat-maven-plugin</artifactId>
</plugin>
<plugin> (5)
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
<reporting>
<plugins>
<plugin> (5)
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
</plugins>
</reporting>
</build>| 1 | Checkstyle エラー時にビルドに失敗する |
| 2 | Checkstyle 違反でビルドに失敗する |
| 3 | Checkstyle はテストソースも分析します |
| 4 | Checkstyle フォーマットルールのほとんどに合格するようにコードを再フォーマットする Spring Java フォーマットプラグインを追加します |
| 5 | checkstyle プラグインをビルドフェーズとレポートフェーズに追加します |
一部のルールを抑制する必要がある場合(たとえば、行の長さを長くする必要がある場合)、抑制を使用して ${project.root}/src/checkstyle/checkstyle-suppressions.xml でファイルを定義するだけで十分です。例:
<?xml version="1.0"?> <!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <suppressions> <suppress files=".*ConfigServerApplication\.java" checks="HideUtilityClassConstructor"/> <suppress files=".*ConfigClientWatch\.java" checks="LineLengthCheck"/> </suppressions>
${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 .springformatIDE のセットアップ
Intellij IDEA
Intellij をセットアップするには、コーディング規約であるインスペクションプロファイルをインポートし、checkstyle プラグインをセットアップする必要があります。次のファイルは Spring Cloud Build [GitHub] (英語) プロジェクトにあります。
└── src ├── checkstyle │ └── checkstyle-suppressions.xml (3) └── main └── resources ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── intellij ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
| 1 | デフォルトの Checkstyle ルール |
| 2 | ファイルヘッダーの設定 |
| 3 | デフォルトの抑制ルール |
| 4 | Checkstyle ルールのほとんどを適用する Intellij のプロジェクトのデフォルト |
| 5 | 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 : raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml (英語) )。次の変数を指定する必要があります。
checkstyle.header.file- クローンされたリポジトリ内またはraw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt (英語)URL 経由で、Spring Cloud Build のspring-cloud-build-tools/src/main/resources/checkstyle-header.txtファイルを指定してください。checkstyle.suppressions.file- デフォルトの抑制。クローンされたリポジトリ内またはraw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml (英語)URL 経由で、Spring Cloud Build のspring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xmlファイルを指定してください。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。
本番ソースとテストソースに checkstyle ルールを適用するため、Scan Scope を All sources に設定することを忘れないでください。 |
重複ファインダー
Spring Cloud Build には basepom:duplicate-finder-maven-plugin が組み込まれており、これにより、java クラスパス上の重複および競合するクラスとリソースにフラグを立てることができます。
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>その他のプロパティについては、プラグインのドキュメント [GitHub] (英語) に記載されているデフォルトを設定しています。
それらは簡単にオーバーライドできますが、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>