Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

838
Vistas
¿Cómo se puede hacer cumplir un formato de código Java consistente?

Estoy buscando una manera de obligar a los desarrolladores a usar las mismas reglas de formato de código Java. Mis requisitos son:

  1. Integración Gradle
    1. Tarea que comprueba si el código tiene el formato correcto. Esto se utilizará en CI para provocar un error de compilación si se envía un código con formato incorrecto

    2. Tarea que corrige el código con formato incorrecto (es bueno tenerlo)

  2. Integración de IntelliJ
    1. El código con formato incorrecto se puede corregir dentro del IDE a través de la acción "Reformatear código"
    2. El código generado por el IDE (por ejemplo, generación de getter/setter) se ajusta a las reglas
  3. Admite las reglas de formato OpenJDK /Oracle Java

Actualmente estoy usando Spotless con la siguiente configuración

 spotless { java { toggleOffOn() eclipse().configFile("${project.rootDir}/tools/eclipse-java-formatter.xml") indentWithSpaces() removeUnusedImports() } }

Para la integración de IntelliJ, instalé el complemento Eclipse Code Formatter y lo configuré para usar las mismas reglas que Spotless.

Este enfoque cumple con todos los requisitos anteriores, excepto el 2.2, es decir, cualquier código generado por IntelliJ debe reformatearse antes de que se ajuste a las reglas de formato. Otro problema es que las importaciones parecen reordenarse arbitrariamente cuando se reformatea el código. Esto genera muchos cambios falsos que hacen que las solicitudes de incorporación de cambios sean más difíciles de revisar.

¿Hay otro enfoque (p. ej., CheckStyle) que no tenga estas deficiencias?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede usar Google Java Format , que tiene complementos para los IDE mencionados anteriormente ( IntelliJ IDEA , Eclipse ), proporciona integraciones con herramientas como Maven, Gradle o SBT, y proporciona medios para ejecutar el formateador como enlace previo a la confirmación o cuando empujando el código a Github con acciones de Github .

En su README también mencionan el problema de las importaciones y cómo solucionarlo para IntelliJ IDEA, y se brindan más conocimientos, por ejemplo: sobre cómo manejarlo en el complemento Spotless Gradle , cuando se usa el complemento Maven Spotless o para las acciones de Github .

Un inconveniente para su caso específico puede ser que la herramienta aplique la guía de estilo de Google Java , que fue elogiada y recomendada por el equipo de Oracle Java como se describe en la revista Oracle Java . También brinda la opción de usar el estilo de código AOSP .

Debajo de un fragmento de código para la configuración impecable de Gradle, considerando el pedido de importaciones:

 spotless { java { importOrder() // standard import order importOrder('java', 'javax', 'com.acme', '') // or importOrderFile // You probably want an empty string at the end - all of the // imports you didn't specify explicitly will go there. removeUnusedImports() googleJavaFormat() // has its own section below eclipse() // has its own section below prettier() // has its own section below clangFormat() // has its own section below licenseHeader '/* (C) $YEAR */' // or licenseHeaderFile } }
over 4 years ago · Santiago Trujillo Denunciar

0

Checkstyle es compatible con la mayoría de sus requisitos.

Integración Gradle:

 plugins { id 'checkstyle' } checkstyle { toolVersion = checkstyleVersion config = rootProject.resources.text.fromFile(checkstyleRulesRootPath) # Loads configuration from a file ignoreFailures = false # Causes build to fail maxWarnings = 0 # Fails even for warnings }

No corrige el código automáticamente (AFAIK).

Integración de IntelliJ:

Hay un complemento Checkstyle que puede configurar para mostrar advertencias mientras codifica.

También puede configurar el formato automático de IntelliJ para usar estas reglas.

Reglas de formato

Aquí está la configuración para las especificaciones de Oracle/Sun en checkstyle.

over 4 years ago · Santiago Trujillo Denunciar

0

Creo que puedes usarlo como complemento p3c

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda