Tôi cố gắng để vượt qua tính maven (được định nghĩa thông qua hồ sơ) một thi antrun:Maven antrun: pass tính maven để ant
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<dependencies>
<!-- ... these are ok -->
</dependencies>
<executions>
<execution>
<configuration>
<target>
<property name="ant_destDir" value="${destDir}" />
<property name="ant_serverDeploy" value="${serverDeploy}" />
<property name="ant_deployDir" value="${deployDir}" />
<property name="ant_userDeploy" value="${userDeploy}" />
<property name="ant_passwordDeploy" value="${passwordDeploy}" />
<!-- correct task definitions for sshexec and scp -->
<sshexec host="${serverDeploy}" username="${userDeploy}"
password="${passwordDeploy}" trust="yes"
command="some command" />
<scp remoteTodir="${userDeploy}@${serverDeploy}:${destDir}"
password="${passwordDeploy}" trust="yes" sftp="true">
<fileset dir="${deployDir}" includes="*.jar" />
</scp>
<sshexec host="${serverDeploy}" username="${userDeploy}"
password="${passwordDeploy}" trust="yes"
command="some command" />
</target>
</configuration>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Các thuộc tính được định nghĩa trong các cấu hình để cho phép triển khai trong các máy chủ khác nhau (tôi biết nó không phải là phương pháp tốt nhất có thể, nhưng đây là cách mọi thứ được thực hiện ở đây), như thế này:
<profile>
<id>aprofile</id>
<properties>
<property name="serverDeploy" value="somevalue" />
<property name="userDeploy" value="someuser" />
<property name="passwordDeploy" value="somepassword" />
<!-- and so on -->
</properties>
</profile>
vấn đề của tôi là tôi không thể có được tài sản maven để làm việc trong plugin kiến; Tôi đã cố gắng để thêm một nhiệm vụ <echoproperties>
trong kiến để xem những thuộc tính tôi có và không có dấu vết của tài sản maven. Có thể sử dụng các đặc tính được xác định của maven hay tôi nên sử dụng cách tiếp cận khác? Bất kỳ đề nghị được chào đón.
Edit: Tôi đã sửa đổi kịch bản như mỗi câu trả lời đầu tiên, nó vẫn không hoạt động
@RiccardoCossu Tôi đã tạo một dự án thử nghiệm chỉ chứa một pom (Tôi đã chỉnh sửa câu trả lời của mình để bao gồm pom hoàn chỉnh). Như được mô tả trong câu trả lời khi tôi thực thi maven, thuộc tính được thay thế chính xác trong cuộc gọi antrun. Bạn đang sử dụng phiên bản nào của maven? – DB5
Tôi đã thử dự án thử nghiệm của bạn và nó hoạt động; Tôi vẫn phải hiểu tại sao nó không hoạt động trong trường hợp cụ thể của tôi ... :-(Tôi đang sử dụng 3.0.4 –
nhận được nó! Tôi rơi vào một vòng lặp của sự nhầm lẫn giữa kiến và maven ... Tôi đã tuyên bố tài sản cách "kiến" trong phần maven (với thẻ có tên là thuộc tính, thay vì tên tùy chỉnh) –