[java] Intellij Idea를 사용하여 Java 프로젝트에서 Jenkinsfile 구문 강조

우리는 이미 아래 나열된 접근 방식을 시도했습니다.

여러 날 동안 여러 시간 동안 웹을 검색했지만 여전히이 문제에 대한 유용한 리소스를 찾지 못했습니다. 따라서 여기에서 새로운 질문을하는 것이 합리적입니다.

IntelliJ 아이디어로 Java 프로젝트를 개발하고 있으며 빌드를 Jenkins와 통합하려고합니다. Idea에서 Jenkinsfile을 만들 때 구문 강조 표시 또는 자동 완성 기능이 제공되지 않습니다. Jenkins를 처음 사용하기 때문에 이러한 기능은 우리에게 정말 유용 할 것입니다. Jenkinsfiles를 사용하여 Idea를 어떻게 더 지원할 수 있습니까?

Jenkinsfile에 대한 구문 강조 및 자동 완성을 얻을 수있는 방법이 없다면 다른 편집기가 도움이 될까요?

참고 :

  • 우리는 그루비 프로젝트가 아닌 자바 프로젝트로 작업하고 있습니다.
  • 우리는 이미 https://github.com/oliverlockwood/jenkinsfile-idea-plugin 플러그인을 사용해 보았습니다 . 플러그인이 활성화되면 Jenkinsfile이 그렇게 인식되지만 구문 강조 표시 대신 오류 메시지가 표시됩니다. 아래를 참조하십시오.

    pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'echo Hello, World!'
            }
        }
      }
    }

    아이디어는 ‘파이프 라인’의 ‘p’를 오류로 강조합니다. 오류 메시지는 다음과 같습니다.

    JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF 또는 JenkinsTokenType.STEP_KEY 예상, ‘p’가 있습니다.

도움을 주셔서 감사합니다!



답변

IDEA가 Jenkinsfile을 Groovy 파일로 인식하도록하려면 문자열 “Jenkinsfile”을 Groovy 파일에 대한 유효한 파일 이름 패턴 (일반적으로 파일 엔딩 포함)으로 추가 할 수 있습니다. 이것은 추가 플러그인없이 “즉시”지원됩니다 ( “Groovy”플러그인 제외, 이미 IDEA의 일부 임).

설정 메뉴로 이동하여 “Editor”항목을 연 다음 “File Types”를 엽니 다. 이제 상단 목록에서 “Groovy”를 선택하고 “Jenkinsfile”을 추가합니다. Jenkinsfile에 대한 선택적 파일 종료에 대해 더 유연하게하려면 “Jenkinsfile *”과 같은 정규식을 사용할 수도 있습니다.
이제 설정은 다음과 같습니다.
IDEA 파일 유형 설정

이제 예제는 IDEA에서 다음과 같이 표시됩니다 (Dracula 테마 사용).
Jenkinsfile 구문 강조

그래서 IDEA는 내가 말할 수있는 한 구문 강조와 자동 완성을 제공합니다. 작성하는 동안 기존 함수 / 메서드 이름을 제안하지만 Groovy 개발자가 아니므로 일부 제안이 누락되었는지 알 수 없습니다.


답변

또 다른 옵션은 이와 같이 Jenkinsfile 위에 shabang을 사용하는 것입니다 #!/usr/bin/env groovy. 또한 gdsl : https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij를 사용해 볼 수
있지만 지금까지는 선언적 파이프 라인을 지원하지 않습니다 : https : //issues.jenkins-ci .org / browse / JENKINS-40127


답변

다음은 IntelliJ 에서받은 피드백 입니다. 작동하는 솔루션을 제공 할 수 있으면 이에 대해 후속 조치를 취할 것입니다.

Andrey Dernov, IntelliJ, 12 월 14 일 07:50 CET

안녕하세요 Georg, IDE에서 Jenkinsfile을 편집하기위한 특별한 Editor intellisense 지원은 없습니다. 이를 위해 사용자 정의 언어 플러그인을 작성해야합니다.

또는 Kotlin DSL 작성을 통해 이러한 지원을 구현하는 것을 고려할 수 있습니다. 시작할 몇 가지 예.


답변

소스 코드를 보면 COMMENTS가 정의되지 않은 것 같습니다 (코드에서 주석 처리됨).

STEP_KEY는 다음과 같이 정의됩니다. STEP_NAME = “sh”| “평행”

플러그인이 훨씬 더 많은 기능을 수행하는지 확신 할 수 없으며 2 년 동안 업데이트되지 않았습니다.


답변

추가하면

#!groovy

jenkinsfile에 헤더를 추가하면 IDE에서 그루비 구문이 강조 표시됩니다.


답변

이렇게 사용 sh하면 오류가 사라질 것입니다 (저를 위해 일했습니다) …

steps {
    sh """
        echo 'Hello, World!'
    """
}


답변