He estado tratando de encontrar un linter de Java capaz de ejecutarse en la CLI que sea independiente de Eclipse al que pueda llamar como un gancho de confirmación para git o desde nuestro script de compilación automatizado. ¿Existe tal cosa?
Idealmente, debe verificar las importaciones y variables no utilizadas, que se sigan las pautas de estilo, que las excepciones se usen correctamente, etc. Aunque algún subconjunto de esas características sería mejor que lo que tenemos ahora, ¡nada!
mikeslattery
- SpotBugs (más temprano Buscar errores) para encontrar errores existentes. ¡MUY BUENO!
- PMD para encontrar patrones que pueden conducir a errores (por ejemplo, variables no utilizadas)
- estilo de cuadros para hacer cumplir los estándares y convenciones de codificación (por ejemplo, espacios en blanco, Javadoc)
- Propenso a errores se conecta directamente al paso de compilación de su aplicación
- formato clang es compatible con Java y es posible que ya esté disponible en su sistema
Todas estas herramientas tienen algunas reglas superpuestas. Hay muchas otras herramientas similares, pero estas son las más populares y compatibles.
-
¿Diría que Findbugs y PMD hacen cosas diferentes? La última vez que investigué esto, concluí que eran lo suficientemente similares como para que solo necesitáramos uno (y elegí PMD). También ejecutamos Checkstyle, y sí, descubrimos que incluso PMD y Checkstyle se superponen.
–Tom Anderson
4 de febrero de 2013 a las 17:36
-
@TomAnderson: diría que definitivamente hacen cosas diferentes, sí. hay valor para ambos (obviamente también hay superposición).
– jtahlborn
4 de febrero de 2013 a las 17:37
-
Sí, objetivos muy diferentes. Findbugs intenta encontrar errores REALES, a veces haciendo un análisis profundo. PMD solo busca patrones conocidos que a veces conducen a errores. Personalmente, uso FindBugs y Checkstyle porque hay menos superposición.
– mikeslattery
4 de febrero de 2013 a las 17:38
-
es posible que desee mencionar que pmd tiene 2 tipos diferentes de controles, pmd y cpd.
– jtahlborn
4 de febrero de 2013 a las 17:39
Además, echa un vistazo Sonarque combina muchas de las otras herramientas y también ofrece una buena vista.
reglas de Checkstyle, FindBugs, PMD, Clirr, fb-contrib.
No estoy seguro exactamente de cómo agregarlo a un enlace posterior a la confirmación, pero http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven podría ser un buen punto de partida (especialmente si está usando maven).
Tal vez incluso considere usar uno de los enfoques enumerados en http://docs.codehaus.org/display/SONAR/Continuous+Integration ya que parece que podría estar tratando de buscar mejores herramientas para todo su equipo (“Aunque algún subconjunto de esas características sería mejor que lo que nosotros tengo ahora – ¡nada!”
-
+1 Cuatro años después de la pregunta, SonarQube parece más activo, moderno y completo. Solía combinar las herramientas mencionadas anteriormente, pero ahora las implementa de forma nativa evitando las superposiciones. blog.sonarsource.com/…
– usuario2518618
17 de enero de 2018 a las 16:57
-
Todavía no hay una buena herramienta CLI para Sonar…
– Fabich
10 de febrero de 2021 a las 14:42
Esto es EXACTAMENTE en lo que estoy trabajando: una herramienta compatible con CLI que se usará para verificar la calidad del código Java. Tiene también una modalidad interactiva. Puede ejecutar consultas individuales (para verificar advertencias individuales) o todas las consultas juntas.
La herramienta está en su etapa inicial, pero estoy trabajando en ella casi todos los días. Está disponible aquí:
https://github.com/ftomassetti/effectjava
Por favor, hágame saber lo que piensa al respecto y siéntase libre de hacer preguntas.
-
La última confirmación de este proyecto fue hace 2 años. No estoy seguro de si esto se está desarrollando activamente más.
– Daniel Águila
24 de agosto de 2017 a las 18:41
-
No, no es. Pero luego comencé a trabajar en JavaParser. Ese proyecto no le da una CLI ma, podría construirse sobre él.
–Federico Tomassetti
14 de mayo de 2018 a las 7:46
// , ¿No es esto una solicitud de recomendación de software?
– Nathan Basanese
24/06/2016 a las 21:07
No sé si debería preguntar aquí o en meta, pero ¿qué hay de malo en preguntas como esta que piden recomendaciones? Claro que no hay una respuesta única y objetiva a esta pregunta, pero también es el caso de muchas preguntas técnicas. Esta pregunta podría reformularse como “No tengo un linter y no sé qué herramientas están disponibles, actualizadas y ampliamente utilizadas”. ¿Eso ayudaría? Preferiría encontrar una sesión de preguntas y respuestas seleccionada, clasificada y registrada por fecha en StackOverflow que en otro lugar. ¿A dónde deberían ir las personas con este tipo de preguntas, si no es aquí?
–Kyle Krull
18 de marzo de 2019 a las 14:09