'daki boruya uymuyor gibi görünüyor. 2.32.2 sürümündeki bir pipelineda Jenkinsfile kullanıyorum.Jenkins pipeline sh, shell komutu
Çeşitli nedenlerden dolayı, sürüm dizesini pompadan çıkarmak istiyorum. Maven yardım eklentisini eklemek ve değerlendirmek zorunda kalmamayı umuyordum.
Boruları kullanan ve yürütücünün jenkins çalışma alanındaki komut satırında çalışan pompayı çıkarmak için hızlı bir şekilde küçük bir ifadeyle geldim.
$ sed -n '/<version>/,/<version/p' pom.xml | head -1 | sed 's/[[:blank:]]*<\/*version>//g' 1.0.0-SNAPSHOT
Muhtemelen optimize ama boru hattı borulu sh komutları üzerinde Başarısız görünen anlamak istiyorum olabilir. Çeşitli dize formatları ile oynadım ve şu anda bir dolar eğik çizgi kullanıyordum. Komut dizesinin kolay çıkış için izin vermek için aşağıdaki gibi
boru hattı adım görünüyor: Ben içine kablolu komutlar ayıran gibi görünüyor şu konsol çıktısını almak Jenkins boru hattı çalıştırmak
script {
def ver_script = $/sed -n '/<version>/,/<version/p' pom.xml | head -1 | sed 's/[[:blank:]]*<\/*version>//g'/$
echo "${ver_script}"
POM_VERSION = sh(script: "${ver_script}", returnStdout: true)
echo "${POM_VERSION}"
}
ayrı komutlar:
[Pipeline] script
[Pipeline] {
[Pipeline] echo
sed -n '/<version>/,/<version/p' pom.xml | head -1 | sed 's/[[:blank:]]*<\/*version>//g'
[Pipeline] sh
[FRA-198-versioned-artifacts-44SD6DBQOGOI54UEF7NYE4ECARE7RMF7VQYXDPBVFOHS5CMSTFLA] Running shell script
+ sed -n /<version>/,/<version/p pom.xml
+ head -1
+ sed s/[[:blank:]]*<\/*version>//g
sed: couldn't write 89 items to stdout: Broken pipe
[Pipeline] }
[Pipeline] // script
orada düzgün bir jenkinsfile borulu içinde komutları nasıl kullanılacağı konusunda herhangi bir rehberlik?
Artık böyle bir şeye gerek yok. 'ReadMavenPom' adımını kullanarak cevabımı görün. – StephenKing
Harika! Bunu hemen kullanacağım. Teşekkürler – mattvbv