Tôi muốn đọc một tệp pom.xml ('Mô hình đối tượng dự án' của Maven) và trích xuất thông tin phiên bản. Đây là một ví dụ:
<?xml version="1.0" encoding="UTF-8"?><project
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>project-parent</artifactId>
<name>project-parent</name>
<version>1.0.74-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.sybase.jconnect</groupId>
<artifactId>jconnect</artifactId>
<version>6.05-26023</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>
Làm cách nào tôi có thể trích xuất phiên bản '1.0.74-SNAPSHOT' từ trên?
Rất thích có thể làm như vậy bằng cách sử dụng bash scripting đơn giản hoặc awk. Nếu không, một con trăn đơn giản được ưa thích.
BIÊN TẬP
Hạn chế
Hộp linux nằm trong môi trường doanh nghiệp nên tôi chỉ có thể sử dụng các công cụ đã được cài đặt (không phải là tôi không thể yêu cầu tiện ích như xml2, nhưng tôi phải trải qua rất nhiều băng đỏ). Một số giải pháp rất tốt (đã học một vài thủ thuật mới), nhưng chúng có thể không được áp dụng do môi trường bị hạn chế
cập nhật danh sách xml
Tôi đã thêm thẻ phụ thuộc vào danh sách ban đầu. Điều này sẽ cho thấy một số giải pháp hacky có thể không hoạt động trong trường hợp này
Xa
Bản phân phối tôi đang sử dụng là RHEL4