Tôi có dự án maven và nhiệm vụ kiến cho nó. Trong tác vụ kiến tôi muốn lấy thuộc tính phiên bản từ tệp pom.xml. Làm thế nào để có được nó?Cách lấy phiên bản dự án từ pom của Mavens trong Ant
Trong pom.xml: <version>2.03.010</version>
Tôi có dự án maven và nhiệm vụ kiến cho nó. Trong tác vụ kiến tôi muốn lấy thuộc tính phiên bản từ tệp pom.xml. Làm thế nào để có được nó?Cách lấy phiên bản dự án từ pom của Mavens trong Ant
Trong pom.xml: <version>2.03.010</version>
Các Maven Ant tasks cung cấp một số mục tiêu cho POM processing
Để truy cập vào phiên bản từ một POM, bạn có thể sử dụng như sau:
<artifact:pom id="mypom" file="pom.xml" />
<echo>The version is ${mypom.version}</echo>
Cập nhật: Để sử dụng các nhiệm vụ. Bạn sẽ cần phải cài đặt chúng. Install instructions
Bạn có thể:
Với tùy chọn 2. bạn sửa đổi dự án của bạn như sau để làm cho kiến thức của maven-ant-nhiệm vụ schema:
<project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant">
...
</project>
Với tùy chọn 3. Bạn chỉ rõ typedef như sau (giả sử các maven -ant-nhiệm vụ jar trong thư mục lib của dự án của bạn):
<project ... xmlns:artifact="antlib:org.apache.maven.artifact.ant">
...
<path id="maven-ant-tasks.classpath" path="lib/maven-ant-tasks-2.0.10.jar" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="antlib:org.apache.maven.artifact.ant"
classpathref="maven-ant-tasks.classpath" />
...
</project>
Nếu những gì bạn muốn chỉ là để đọc các giá trị từ pom.xml với những gì đang có trong kiến đã có, bạn có thể sử dụng các nhiệm vụ XmlProperty:
<xmlproperty file="pom.xml" prefix="pom" />
<echo>The version is ${pom.project.version}</echo>
Tác vụ Ant Maven không còn được duy trì, bằng cách này.
Điều này luôn hoạt động và nó đơn giản hơn rất nhiều so với câu trả lời được chấp nhận. –
Cách tiếp cận tuyệt vời. – jsosnowski
Tôi gặp lỗi. Những gì tôi nedd để thêm? build.xml: 11: Tiền tố "tạo tác" cho phần tử "tạo tác: pom" không bị ràng buộc. – Chuprin
Nhiệm vụ kiến của Maven không phải là một phần của bản cài đặt Ant. Bạn cần phải thêm chúng. –
+1 cho câu trả lời rất chi tiết (và phải) –