full - Resaltado de sintaxis de Jenkinsfile en proyecto Java usando Intellij Idea
intellij idea vs netbeans (5)
A continuación se muestran los comentarios que recibimos de IntelliJ . Haremos un seguimiento de esto si podemos proporcionar una solución de trabajo.
Andrey Dernov, IntelliJ, 14 de diciembre, 07:50 CET
Hola Georg, no hay soporte especial de Intellisense para editar archivos Jenkins en IDE. Necesitará escribir un complemento de idioma personalizado para esto.
O puede considerar implementar dicho soporte escribiendo Kotlin DSL. Algunos ejemplos para comenzar.
Ya probamos los enfoques que se enumeran a continuación:
- https://github.com/oliverlockwood/jenkinsfile-idea-plugin
- https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
Después de haber buscado en la web durante muchas horas en varios días, todavía no hemos encontrado un recurso útil sobre este asunto. Por lo tanto, parece tener sentido hacer una nueva pregunta aquí.
Estamos desarrollando nuestros proyectos Java en la idea IntelliJ y queremos integrar nuestras compilaciones con Jenkins. Cuando creamos un archivo Jenkins en Idea, no obtenemos resaltado de sintaxis o autocompletado. Como somos nuevos en Jenkins, esas características serían realmente útiles para nosotros. ¿Cómo podemos hacer que Idea sea más solidaria con Jenkinsfiles?
Si no hay forma de obtener un resaltado de sintaxis y una finalización automática para un archivo Jenkins, ¿qué otros editores serían útiles?
Tenga en cuenta:
- Estamos trabajando con proyectos de Java, no con proyectos maravillosos.
-
Ya hemos probado el complemento https://github.com/oliverlockwood/jenkinsfile-idea-plugin . Cuando se activa el complemento, el archivo Jenkins se reconoce como tal, pero en lugar de resaltar la sintaxis, recibimos un mensaje de error.
pipeline { agent { docker ''maven:3.3.3'' } stages { stage(''build'') { steps { sh ''echo Hello, World!'' } } } }
La idea resalta la ''p'' de ''pipeline'' como error. El mensaje de error dice:
JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF o JenkinsTokenType.STEP_KEY esperado, obtuve ''p''
¡Gracias por cualquier ayuda!
Mirando el código fuente, parece que los COMENTARIOS no están definidos (están comentados en el código)
STEP_KEY se define como: STEP_NAME = "sh" | "paralela"
No estoy seguro de que el complemento haga mucho más y no se haya actualizado en 2 años.
Otra opción es usar un shabang encima del archivo Jenkins como este
#!/usr/bin/env groovy
.
También puede probar gdsl:
https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
pero hasta ahora no admite
https://issues.jenkins-ci.org/browse/JENKINS-40127
declarativos:
https://issues.jenkins-ci.org/browse/JENKINS-40127
Si desea que IDEA reconozca un Jenkinsfile como un archivo Groovy, puede agregar la Cadena "Jenkinsfile" como un patrón de nombre de archivo válido (normalmente contiene terminaciones de archivo) para los archivos Groovy. Esto es compatible "fuera de la caja" sin requerir ningún complemento adicional (excepto el complemento "Groovy", pero eso ya es parte de IDEA).
Para ello, vaya al menú de configuración, abra el elemento "Editor" y luego "Tipos de archivo".
Ahora seleccione "Groovy" en la lista superior y agregue "Jenkinsfile".
También puede usar una expresión regular como "Jenkinsfile *" si desea ser más flexible con respecto a un archivo opcional que finaliza para Jenkinsfile.
La configuración ahora debería verse así:
Su ejemplo ahora se ve así en IDEA (con el tema Drácula):
Así que IDEA ahora proporciona resaltado de sintaxis y autocompletado hasta donde puedo decir. Sugiere nombres de funciones / métodos existentes mientras escribo, pero no soy un desarrollador Groovy, por lo tanto, no puedo decir si faltan algunas sugerencias.
Use
sh
como este y el error debería desaparecer (funcionó para mí) ...
steps {
sh """
echo ''Hello, World!''
"""
}