Là mới để hấp dẫn, tôi đã cố gắng để thực hiện shell script như một phần của xây dựng đường ống dẫn trong Jenkins bên groovy như dưới đây:Jenkins đường ống: java.lang.NoSuchMethodError: Không có phương pháp DSL như vậy, trong khi thực hiện shell script bên groovy
stage('AMI ID EXTRACTION') {
sh 'AMI_ID=$(grep artifact_id /opt/repository/jenkins/workspace/crspng-CCPDev-ccp-ft-AMI/manifest.json | awk -F "\"" '{print $4}'| awk -F ":" '{print $2}')'
echo $AMI_ID
}
stage ('ft-ami-extraction')
{
build job: 'crspng-CCPDev-ami-extraction'
}
Nhưng kết thúc nhận được ngoại lệ như dưới đây:
java.lang.NoSuchMethodError: No such DSL method 'AMI_ID=$(grep artifact_id /opt/repository/jenkins/workspace/crspng-CCPDev-ccp-ft-AMI/manifest.json | awk -F """ '
Không may mắn thậm chí sau khi thử nhiều giải pháp trên internet, vỏ kịch bản bên trong groovy là thách thức ở đây. Bất kỳ vấn đề với cú pháp?
Đối với những người chạy vào các vấn đề trích dẫn tương tự, [GitHub Gist] này (https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4) có thể hữu ích. – mkobit
bạn có thể sẽ cần phải thêm \ escape code cho tất cả các dấu ngoặc kép trong dòng bạn. Xem xét việc đưa toàn bộ lệnh đường dẫn vào một kịch bản lệnh shell và chạy nó từ đường dẫn. – yorammi