우리는 이미 아래 나열된 접근 방식을 시도했습니다.
- https://github.com/oliverlockwood/jenkinsfile-idea-plugin
- https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
여러 날 동안 여러 시간 동안 웹을 검색했지만 여전히이 문제에 대한 유용한 리소스를 찾지 못했습니다. 따라서 여기에서 새로운 질문을하는 것이 합리적입니다.
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에서 다음과 같이 표시됩니다 (Dracula 테마 사용).
그래서 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!'
"""
}