Java 17
Marco de primavera 6
Bota de primavera 3
Enrutamiento dinámico
Coincidencia de rutas integrada en Spring Handler Mapping
Coincidencia de ruta en solicitud HTTP (ruta, método, encabezado, host, etc.)
Filtros con ámbito de ruta coincidente
Los filtros pueden modificar la solicitud HTTP y la respuesta HTTP posteriores (agregar/eliminar encabezados, agregar/eliminar parámetros, reescribir ruta, establecer ruta, Hystrix, etc.)
API o configuración impulsada
Admite Spring Cloud DiscoveryClient
para configurar rutas
Directiva no resuelta en <stdin> - incluye::https:///raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/docs/modules/ROOT/partials/building.adoc[]
Spring Cloud se lanza bajo la licencia Apache 2.0 no restrictiva y sigue un proceso de desarrollo de Github muy estándar, utilizando el rastreador de Github para problemas y fusionando solicitudes de extracción en main. Si desea contribuir incluso con algo trivial, no lo dude y siga las pautas a continuación.
Antes de aceptar un parche no trivial o una solicitud de extracción, necesitaremos que firme el Acuerdo de licencia de colaborador. Firmar el acuerdo de colaborador no otorga a nadie derechos de compromiso sobre el repositorio principal, pero sí significa que podemos aceptar sus contribuciones y, si lo hacemos, obtendrá un crédito de autor. A los contribuyentes activos se les puede pedir que se unan al equipo central y se les puede dar la posibilidad de fusionar solicitudes de extracción.
Este proyecto se adhiere al código de conducta del Pacto del Colaborador. Al participar, se espera que respete este código. Informe cualquier comportamiento inaceptable a [email protected].
Ninguno de estos es esencial para una solicitud de extracción, pero todos ayudarán. También se pueden agregar después de la solicitud de extracción original pero antes de una combinación.
Utilice las convenciones de formato de código de Spring Framework. Si usa Eclipse, puede importar la configuración del formateador usando el archivo eclipse-code-formatter.xml
del proyecto Spring Cloud Build. Si usa IntelliJ, puede usar el complemento Eclipse Code Formatter para importar el mismo archivo.
Asegúrese de que todos los archivos .java
nuevos tengan un comentario de clase Javadoc simple con al menos una etiqueta @author
que lo identifique y, preferiblemente, al menos un párrafo sobre para qué sirve la clase.
Agregue el comentario del encabezado de la licencia ASF a todos los archivos .java
nuevos (cópielos de los archivos existentes en el proyecto)
Agréguese como @author
a los archivos .java que modifique sustancialmente (más que cambios cosméticos).
Agregue algunos Javadocs y, si cambia el espacio de nombres, algunos elementos del documento XSD.
Algunas pruebas unitarias también ayudarían mucho: alguien tiene que hacerlo.
Si nadie más está usando su rama, vuelva a basarla en la rama principal actual (u otra rama de destino en el proyecto principal).
Al escribir un mensaje de confirmación, siga estas convenciones; si está solucionando un problema existente, agregue Fixes gh-XXXX
al final del mensaje de confirmación (donde XXXX es el número del problema).
Spring Cloud Build viene con un conjunto de reglas de estilo de verificación. Puede encontrarlos en el módulo spring-cloud-build-tools
. Los archivos más notables del módulo son:
└── src ├── estilo de verificación │ └── checkstyle-suppressions.xml (3) └── principal └── recursos ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
Reglas de estilo de verificación predeterminadas
Configuración del encabezado del archivo
Reglas de supresión predeterminadas
Las reglas de estilo de verificación están deshabilitadas de forma predeterminada . Para agregar checkstyle a su proyecto, simplemente defina las siguientes propiedades y complementos.
<propiedades> <maven-checkstyle-plugin.failsOnError>verdadero</maven-checkstyle-plugin.failsOnError> (1) <maven-checkstyle-plugin.failsOnViolation>verdadero </maven-checkstyle-plugin.failsOnViolation> (2) <maven-checkstyle-plugin.includeTestSourceDirectory>verdadero </maven-checkstyle-plugin.includeTestSourceDirectory> (3) </propiedades> <construir> <complementos> <complemento> (4) <groupId>io.spring.javaformat</groupId> <artifactId>complemento-spring-javaformat-maven</artifactId> </complemento> <complemento> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>complemento-maven-checkstyle</artifactId> </complemento> </complementos> <informes> <complementos> <complemento> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>complemento-maven-checkstyle</artifactId> </complemento> </complementos> </informes> </construcción>
Falla la compilación debido a errores de Checkstyle
Falla la construcción sobre violaciones de Checkstyle
Checkstyle analiza también las fuentes de prueba
Agregue el complemento Spring Java Format que reformateará su código para pasar la mayoría de las reglas de formato Checkstyle
Agregue el complemento checkstyle a sus fases de creación e informes
Si necesita suprimir algunas reglas (por ejemplo, la longitud de la línea debe ser más larga), entonces es suficiente que defina un archivo en ${project.root}/src/checkstyle/checkstyle-suppressions.xml
con sus supresiones. Ejemplo:
<?xml versión="1.0"?> <!DOCTYPE supresiones PUBLIC "-//Puppy Crawl//Supresiones DTD 1.1//ES" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <supresiones> <suprimir archivos=".*ConfigServerApplication.java" comprueba="HideUtilityClassConstructor"/> <suprimir archivos=".*ConfigClientWatch.java" comprueba="LineLengthCheck"/> </supresiones>
Es recomendable copiar el ${spring-cloud-build.rootFolder}/.editorconfig
y ${spring-cloud-build.rootFolder}/.springformat
a su proyecto. De esa forma, se aplicarán algunas reglas de formato predeterminadas. Puede hacerlo ejecutando este script:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/.editorconfig -o .editorconfig
$ touch .springformat
Para configurar Intellij, debe importar nuestras convenciones de codificación, perfiles de inspección y configurar el complemento checkstyle. Los siguientes archivos se pueden encontrar en el proyecto Spring Cloud Build.
└── src ├── estilo de verificación │ └── checkstyle-suppressions.xml (3) └── principal └── recursos ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── intelij ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
Reglas de estilo de verificación predeterminadas
Configuración del encabezado del archivo
Reglas de supresión predeterminadas
Valores predeterminados del proyecto para Intellij que aplican la mayoría de las reglas de Checkstyle
Convenciones de estilo de proyecto para Intellij que aplican la mayoría de las reglas de Checkstyle
Vaya a File
→ Settings
→ Editor
→ Code style
. Allí haga clic en el icono al lado de la sección Scheme
. Allí, haga clic en el valor Import Scheme
y seleccione la opción Intellij IDEA code style XML
. Importe el archivo spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
.
Vaya a File
→ Settings
→ Editor
→ Inspections
. Allí haz clic en el icono al lado de la sección Profile
. Allí, haga clic en Import Profile
e importe el archivo spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
.
Para que Intellij funcione con Checkstyle, debe instalar el complemento Checkstyle
. Es recomendable instalar también Assertions2Assertj
para convertir automáticamente las afirmaciones JUnit.
Vaya a File
→ Settings
→ Other settings
→ Checkstyle
. Allí haga clic en el icono +
en la sección Configuration file
. Allí, tendrás que definir de dónde se deben elegir las reglas de estilo de verificación. En la imagen de arriba, hemos elegido las reglas del repositorio clonado de Spring Cloud Build. Sin embargo, puede señalar el repositorio GitHub de Spring Cloud Build (por ejemplo, para checkstyle.xml
: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). Necesitamos proporcionar las siguientes variables:
checkstyle.header.file
: apúntelo al archivo Spring Cloud Build, spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
ya sea en su repositorio clonado o a través de https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
URL.
checkstyle.suppressions.file
: supresiones predeterminadas. Indíquelo al archivo Spring Cloud Build, spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
ya sea en su repositorio clonado o a través de https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
URL.
checkstyle.additional.suppressions.file
: esta variable corresponde a las supresiones en su proyecto local. Por ejemplo, estás trabajando en spring-cloud-contract
. Luego apunte a la carpeta project-root/src/checkstyle/checkstyle-suppressions.xml
. Un ejemplo de spring-cloud-contract
sería: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
.
Importante | Recuerde configurar el Scan Scope en All sources ya que aplicamos reglas de estilo de verificación para las fuentes de producción y prueba. |
Spring Cloud Build incluye basepom:duplicate-finder-maven-plugin
, que permite marcar clases y recursos duplicados y en conflicto en el classpath de Java.
El buscador de duplicados está habilitado de forma predeterminada y se ejecutará en la fase verify
de su compilación de Maven, pero solo tendrá efecto en su proyecto si agrega el duplicate-finder-maven-plugin
a la sección build
del pom.xml
del proyecto.
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
Para otras propiedades, hemos establecido los valores predeterminados que se enumeran en la documentación del complemento.
Puede anularlos fácilmente, pero configurando el valor de la propiedad seleccionada con el prefijo duplicate-finder-maven-plugin
. Por ejemplo, configure duplicate-finder-maven-plugin.skip
en true
para omitir la verificación de duplicados en su compilación.
Si necesita agregar ignoredClassPatterns
o ignoredResourcePatterns
a su configuración, asegúrese de agregarlos en la sección de configuración del complemento de su proyecto:
< 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 >