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


101

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

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

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'가 있습니다.

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


사용자 정의 플러그인이 있습니다 : plugins.jetbrains.com/plugin/10127-jenkinsfile-idea-plugin 및 기능 요청 : youtrack.jetbrains.com/issue/IDEA-158104
y.bedrov

@ y.bedrov 귀하의 의견에 감사드립니다. 이미 명시된 플러그인을 사용해 보았지만 오류 메시지 만 받았지만 구문 강조 표시 나 자동 완성은 없었습니다. 플러그인에 대한 귀하의 경험은 어떻습니까?
rexford

1
이 기본 사항에 플러그인이 필요한 이유를 모르겠습니다. Groovy의 파일 형식으로 "Jenkinsfile"을 추가하기 만하면됩니다 (설정> 편집기> 파일 형식> Groovy 및 "Jenkinsfile"을 "등록 된 패턴"으로 추가). 설정 후 누락 된 사항은 무엇입니까?

1
@Tom 감사합니다! 사실, 귀하의 의견은 우리가 찾고 있던 것에 대한 것입니다. 이 정보를 답변으로 제공해 주시면 정답 / 가장 유용한 답변으로 수락하겠습니다.
rexford

2
@ 톰 어떤없는 것은 실제 젠킨스 DSL의 자동 완성 및 검증은
OrangeDog

답변:


224

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

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

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

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


6
사람들이 원하는 기능에는 GDSL에 대한 유효성 검사 / 자동 완성 / quickdocslinter 통합이 포함 됩니다. 이상적인 플러그인은 최소한의 구성으로 모든 것을 "그냥 작동"하도록 만들 것입니다 (예 : Jenkins 인스턴스를 가리킴).
OrangeDog

2
참고로 그루비 파일 유형은 PyCharm 2018.3.2가 아닌 InteliJ 및 Android 스튜디오에서만 사용할 수 있습니다 . 이 플러그인이 필요하기 때문에 나는 생각한다 plugins.jetbrains.com/plugin/1524-jetgroovy
Ming

또한 https : // <Jenkins> / job / <Job Name> / pipeline-syntax / gdsl의 Jenkins 인스턴스에서 gdsl 파일을 다운로드하여 프로젝트의 Groovy 클래스 경로에 넣는 것을 고려하십시오.
Stephan

1
이것은 좋은 아이디어지만 구성 할 수있는 그루비 SDK가 필요합니다
owensmartin

1
훌륭한! TY 너무! 동일한 방식으로 Jenkinsfile.declarative 파일을 재 할당하여 구문 강조와 코드 완성을 모두 얻을 수있었습니다. 우리 *.declarative에게는 텍스트 파일 유형이 할당되었습니다.
icfantv


1

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

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

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

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


1

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

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

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


-1

추가하면

#!groovy

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


intellij에서는 작동하지 않고이 답변은 일반적으로 너무 모호합니다
Tomer Gal

-12

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

steps {
    sh """
        echo 'Hello, World!'
    """
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.