2016-07-22 22 views
5

jenkins pipeline eklentisinde pom.xml dosyasını ayrıştırmaya çalışıyorum. Onu değiştirmek ve geri kaydetmek niyetinde.Bir Jenkins boru hattının içinde parsing pom.xml dosyası

@NonCPS 
groovy.util.Node getPom(path) { 
    new XmlParser().parseText(readFile(path)).version 
} 
node { 
    groovy.util.Node pomNode = getPom("pom.xml") 
    println pomNode 
} 

Benzer konu burada tartışıldı:

Benim sorunum şu şekilde

Benim kodudur "sınıflandırılmamış alan java.lang.String sürüm" beni sağlamasıdır Parsing an XML file within a Jenkins pipeline

cevap

7

Neden kullanmayın (bunun için pipeline yardımcı program eklentisine ihtiyacınız var):

pom = readMavenPom file: 'pom.xml' 

Artık pompandaki tüm verilere erişebilirsiniz (Model).

+0

Mükemmel bir cevap. Doğru ve son derece hızlı. Sadece hızlı bir soru, pom dosyasını değiştirdikten sonra nasıl kaydederim (pomV'nin sürümünü ayarlamak için setVersion() kullanılır)? –

+0

'writeMavenPom'unu kullanabilirsiniz (bkz. Https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/ başvuru için) –

+0

Başka bir çok hızlı olanı, kaydetmeyi denedim ve dosyayı kaydeder ama üst dizinde. Sonra biraz araştırdım ve dosyaya istenen yolla verilebilecek isteğe bağlı bir "dosya" parametresi bulunduğunu keşfettim. Ancak, bu dosya parametresini writeMavenPom'uma nasıl besleyeceğimi öğrenmek için başvurdum. Hiçbir yerde herhangi bir örnek komut bulunamadı. Tekrar teşekkürler! –

İlgili konular