google-java-formatter
для форматирования кода
Поскольку google-java-formatter
вносит изменения (форматирование) в код, то он изменяет код для принятия.
См. google- java -формат исходный код:
google-java-format
- это программа, которая переформатирует Java исходный код в соответствии с Google Java Стиль .
Итак, вам нужен хук pre-commit
.
Например, вы можете использовать pre-commit - Фреймворк для управления и поддержки многоязычных хуков pre-commit.
Пример файла, который вы можете увидеть здесь
.pre-commit-hooks.yaml:
- id: eclipse-formatter
name: Eclipse Java Formatter
description: This hook formats Java code with the Eclipse formatter.
entry: eclipse-formatter
language: python
types:
- java
- id: google-java-formatter
name: Google Java Formatter
description: This hook formats Java code with Google Java Formatter.
entry: google-java-formatter
language: python
types:
- java
Если вы хотите интегрировать git перехватывает GitLab
, попробуйте создать пользовательский перехват GitLab Server
линтеры против форматеров
Как вы сказали:
при фиксации код Я хочу, чтобы линия CI проверила, было ли форматирование выполнено первым.
То, что вы спрашиваете - это checkstyle linting
не formatting
Итак, чтобы проверить, что форматирование уже выполнено, вы используете несколько различных линтеров.
Т.е. из этого ответа :
- SpotBugs (ранее Findbugs ) для поиска существующих ошибок. ОЧЕНЬ ХОРОШО!
- PMD для поиска шаблонов, которые могут привести к ошибкам (например, неиспользуемые переменные)
- Checkstyle для обеспечения соблюдения стандартов и соглашений кодирования (например, Пробел, Javado c)
- Ошибка склонна перехватывает прямо на этапе компиляции вашего приложения
Итак, пусть checkstyle
Там Есть много руководств по этому поводу, например: GitLab CI / CD Pipeline для приложений на основе Maven - Блог Ивана Крижсана
Также есть 250 + семплов .gitlab-ci.yml
с `checkstyle.
Client_Checkstyle:
stage: test
script:
- mvn checkstyle:checkstyle
- cat checkstyle-result.xml
allow_failure: false