Intellij Idea kullanarak Java projesinde Jenkinsfile sözdizimi vurgulama


103

Aşağıda listelenen yaklaşımları zaten denedik:

İnternette birkaç gün ve birkaç saat boyunca arama yaptıktan sonra, bu konuda hâlâ yararlı bir kaynak bulamadık. Bu nedenle, burada yeni bir soru sormak mantıklı görünüyor.

Java projelerimizi IntelliJ fikrinde geliştiriyoruz ve yapılarımızı Jenkins ile entegre etmek istiyoruz. Idea'da bir Jenkinsfile oluşturduğumuzda, sözdizimi vurgulaması veya otomatik tamamlama almıyoruz. Jenkins'te yeni olduğumuz için, bu özellikler bizim için gerçekten faydalı olacaktır. Idea'yı Jenkinsfiles ile nasıl daha destekleyici hale getirebiliriz?

Fikir olarak bir Jenkins dosyası için sözdizimi vurgulama ve otomatik tamamlama almanın bir yolu yoksa, başka hangi editörler yardımcı olabilir?

Lütfen aklınızda bulundurun:

  • Harika projeler değil, java projeleri ile çalışıyoruz.
  • Https://github.com/oliverlockwood/jenkinsfile-idea-plugin eklentisini zaten denedik . Eklenti etkinleştirildiğinde, Jenkins dosyası bu şekilde tanınır, ancak sözdizimi vurgulamak yerine bir hata mesajı alıyoruz, lütfen aşağıya bakın.

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

    Fikir, "boru hattı" nın "p" sini hata olarak vurgular. Hata mesajı okur:

    JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF veya JenkinsTokenType.STEP_KEY bekleniyordu, 'p' aldı

Herhangi bir yardım için teşekkürler!



@ y.bedrov yorumunuz için teşekkürler. Belirtilen eklentiyi zaten denedik, ancak yalnızca bir hata mesajı aldık, ancak sözdizimi vurgulama veya otomatik tamamlama yok. Eklentiyle ilgili deneyiminiz nedir, işinize yarıyor mu?
rexford

1
Bu temel şeyler için neden bir eklentiye ihtiyacınız olduğuna dair hiçbir fikrim yok. Groovy için bir dosya türü olarak "Jenkinsfile" ekleyin (Ayarlar> Editör> Dosya Türleri> Groovy ve "Kayıtlı Kalıp" olarak "Jenkinsfile" ekleyin). Bu kurulumdan sonra eksik olan ne?
Tom

1
@Tom teşekkürler! Aslında yorumunuz aradığımız şeyle ilgili. Lütfen bu bilgiyi bir cevap olarak verin, ben de bunu doğru / en yararlı cevap olarak kabul edeceğim.
rexford

2
@Tom Eksik olan gerçek Jenkins DSL'in otomatik tamamlanması ve doğrulanması
OrangeDog

Yanıtlar:


231

IDEA'nın bir Jenkins dosyasını Groovy dosyası olarak tanımasını istiyorsanız, "Jenkinsfile" Dizesini Groovy dosyaları için geçerli bir dosya adı kalıbı (normalde dosya sonlarını içerir) olarak ekleyebilirsiniz. Bu, herhangi bir ek Eklenti gerektirmeden "kutudan çıkar çıkmaz" desteklenir ("Groovy" Eklentisi hariç, ancak bu zaten IDEA'nın bir parçasıdır).

Bunu yapmak için ayarlar menüsüne gidin, "Düzenleyici" öğesini ve ardından "Dosya Türleri" ni açın. Şimdi üstteki listeden "Groovy" seçin ve "Jenkinsfile" ekleyin. Jenkinsfile için isteğe bağlı bir dosya sonlandırma konusunda daha esnek olmak istiyorsanız, "Jenkinsfile *" gibi bir normal ifade de kullanabilirsiniz.
Ayar şimdi şöyle görünmelidir: IDEA dosya türü ayarları

Örneğiniz artık IDEA'da şöyle görünmektedir (Drakula temasıyla): Jenkinsfile sözdizimi vurgusu

Dolayısıyla, IDEA artık söyleyebileceğim kadarıyla söz dizimi vurgulama ve otomatik tamamlama sağlıyor. Yazarken mevcut işlev / yöntem adlarını öneriyor, ancak Groovy geliştiricisi değilim, bu nedenle bazı önerilerin eksik olup olmadığını anlayamıyorum.


6
İnsanların isteyeceği özellikler arasında GDSL için doğrulama / otomatik tamamlama / hızlı dokümanlar ve linter entegrasyonu bulunur . İdeal bir eklenti, her şeyin minimum konfigürasyonla "sadece çalışmasını" sağlar (örneğin, sadece bir Jenkins örneğine işaret edin).
OrangeDog

2
Sadece bir not, harika dosya türü PyCharm 2018.3.2'de değil , yalnızca InteliJ ve Android stüdyosunda mevcuttur. Sanırım bu eklenti gerekli eklentiler ..jetbrains.com/
Ming

Ayrıca https: // <Jenkins> / job / <Job Name> / pipeline-syntax / gdsl adresindeki Jenkins örneğinizden gdsl dosyasını indirmeyi ve bunları projenizin Groovy sınıf yoluna koymayı düşünün.
Stephan

2
Bu güzel bir fikir ancak yapılandırılması için bir Groovy SDK gerektiriyor
owensmartin

1
Parlak! Çok teşekkür ederim! Jenkinsfile.declarative dosyalarımızı aynı şekilde yeniden atayabildim, böylece hem sözdizimi vurgulama hem de kod tamamlama elde ederiz. Bizim *.declarativeiçin Metin dosya türüne atandı.
icfantv


1

IntelliJ'den aldığımız geri bildirimler aşağıdadır . Çalışan bir çözüm sunabilirsek, bunu takip edeceğiz.

Andrey Dernov, IntelliJ, 14 Ara, 07:50 CET

Merhaba Georg, IDE'de Jenkinsfiles'ı düzenlemek için özel bir Editör intellisense desteği yok. Bunun için özel bir dil eklentisi yazmanız gerekecek.

Ya da Kotlin DSL yazarak bu tür bir desteği uygulamayı düşünebilirsiniz. Başlamak için bazı örnekler.


1

Kaynak koduna bakıldığında, YORUMLAR tanımlanmamış gibi görünüyor (kodda yorumlanmışlar)

STEP_KEY şu şekilde tanımlanır: STEP_NAME = "sh" | "paralel"

Eklentinin çok daha fazlasını yaptığından ve 2 yıldır güncellenmediğinden emin değilim.


0

Eklersen

#!groovy​

jenkinsfile başlığınıza girdikten sonra IDE'de harika sözdizimi vurgulamasını almalısınız.


Intellij'de işe yaramıyor ve bu cevap genel olarak çok belirsiz
Tomer Gal

-14

Bunun shgibi kullanın ve hata gitmeli (benim için çalıştı) ...

steps {
    sh """
        echo 'Hello, World!'
    """
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.