2016-07-22 27 views
5

Tôi đang cố gắng phân tích cú pháp pom.xml của mình trong plugin đường ống jenkins. Tôi có ý định sửa đổi nó và lưu lại.Phân tích tệp pom.xml bên trong đường ống Jenkins

Vấn đề của tôi là nó mang lại cho tôi "phiên bản java.lang.String lĩnh vực được phân loại"

Mã của tôi là như sau:

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

vấn đề tương tự đã được thảo luận ở đây: Parsing an XML file within a Jenkins pipeline

Trả lời

7

Tại sao không sử dụng (bạn cần plugin các bước tiện ích đường ống cho việc này):

pom = readMavenPom file: 'pom.xml' 

Bây giờ bạn có quyền truy cập vào tất cả dữ liệu trong pom (dưới dạng Model).

+0

Câu trả lời hoàn hảo. Chính xác và cực kỳ nhanh chóng. Chỉ cần một câu hỏi nhanh, làm cách nào để lưu tệp pom sau khi sửa đổi nó (tôi đã sử dụng setVersion() để đặt phiên bản của pom)? –

+0

Bạn có thể sử dụng 'writeMavenPom' (xem https://jenkins.io/doc/pipeline/steps/pipeline-utility-steps/ để tham khảo) –

+0

Một cách rất nhanh khác, tôi đã cố gắng lưu và lưu tệp nhưng trong thư mục mẹ. Sau đó, tôi nghiên cứu một chút và thấy rằng có một tham số tùy chọn "tập tin" có thể được đưa ra với đường dẫn mong muốn vào tập tin. Nhưng tôi đã đệ trình để tìm ra cách nạp thông số tệp đó vào writeMavenPom của tôi. Không thể tìm thấy bất kỳ lệnh mẫu nào ở bất kỳ đâu. Cảm ơn bạn một lần nữa! –

Các vấn đề liên quan