Tôi muốn tải một tệp thuộc tính khác dựa trên một biến. Về cơ bản, nếu thực hiện xây dựng dev sử dụng tệp thuộc tính này, nếu thực hiện xây dựng thử nghiệm, hãy sử dụng tệp thuộc tính khác này và nếu thực hiện xây dựng sản xuất, hãy sử dụng tệp thuộc tính thứ ba.Có cách nào để tự động tải tệp thuộc tính trong NAnt không?
Trả lời
Bước 1: Xác định một tài sản trong kịch bản Nant bạn để theo dõi môi trường bạn đang xây dựng cho (địa phương, thử nghiệm, sản xuất, vv).
<property name="environment" value="local" />
Bước 2: Nếu bạn chưa có một mục tiêu cấu hình hoặc khởi rằng tất cả các mục tiêu phụ thuộc vào, sau đó tạo ra một mục tiêu cấu hình, và chắc chắn rằng các mục tiêu khác của bạn phụ thuộc vào nó.
<target name="config">
<!-- configuration logic goes here -->
</target>
<target name="buildmyproject" depends="config">
<!-- this target builds your project, but runs the config target first -->
</target>
Bước 3: Cập nhật mục tiêu cấu hình của bạn để kéo trong một tập tin chiếm đoạt tài sản dựa trên thuộc tính môi trường.
<target name="config">
<property name="configFile" value="${environment}.config.xml" />
<if test="${file::exists(configFile)}">
<echo message="Loading ${configFile}..." />
<include buildfile="${configFile}" />
</if>
<if test="${not file::exists(configFile) and environment != 'local'}">
<fail message="Configuration file '${configFile}' could not be found." />
</if>
</target>
Lưu ý, tôi muốn cho phép các thành viên trong nhóm xác định các tệp local.config.xml của riêng họ không được cam kết kiểm soát nguồn. Điều này cung cấp một nơi tốt đẹp để lưu trữ các chuỗi kết nối cục bộ hoặc các cài đặt môi trường cục bộ khác.
Bước 4: Thiết lập thuộc tính môi trường khi bạn gọi Nant, ví dụ:
- Nant -D: môi trường = dev
- Nant -D: môi trường = test
- Nant -D: environment = production
Cách tôi đã thực hiện loại điều này là bao gồm các tệp xây dựng riêng biệt tùy thuộc vào loại hình xây dựng bằng cách sử dụng nant task. Phương án thay thế có thể là sử dụng iniread task in nantcontrib.
Bạn có thể sử dụng tác vụ include
để bao gồm một tệp xây dựng khác (chứa các thuộc tính của bạn) trong tệp xây dựng chính. Các if
thuộc tính của nhiệm vụ include
có thể kiểm tra đối với một biến để xác định xem việc xây dựng tập tin nên được bao gồm:
<include buildfile="devPropertyFile.build" if="${buildEnvironment == 'DEV'}"/>
<include buildfile="testPropertyFile.build" if="${buildEnvironment == 'TEST'}"/>
<include buildfile="prodPropertyFile.build" if="${buildEnvironment == 'PROD'}"/>
Tôi gặp vấn đề tương tự khi câu trả lời từ scott.caligan được giải quyết một phần, tuy nhiên tôi muốn mọi người có thể thiết lập môi trường và tải nộp tính ppropriate chỉ bằng cách xác định một mục tiêu như vậy:
- Nant dev
- kiểm tra Nant
- Nant giai đoạn
Bạn có thể làm điều này bằng cách thêm một mục tiêu mà bộ biến môi trường. Ví dụ:
<target name="dev">
<property name="environment" value="dev"/>
<call target="importProperties" cascade="false"/>
</target>
<target name="test">
<property name="environment" value="test"/>
<call target="importProperties" cascade="false"/>
</target>
<target name="stage">
<property name="environment" value="stage"/>
<call target="importProperties" cascade="false"/>
</target>
<target name="importProperties">
<property name="propertiesFile" value="properties.${environment}.build"/>
<if test="${file::exists(propertiesFile)}">
<include buildfile="${propertiesFile}"/>
</if>
<if test="${not file::exists(propertiesFile)}">
<fail message="Properties file ${propertiesFile} could not be found."/>
</if>
</target>
- 1. C# Lazy tải tự động thuộc tính
- 2. Java có thuộc tính tự động không?
- 3. tải lên tệp bằng FTP bằng nant
- 4. Có thuộc tính bean bean được làm mới tự động từ các tệp thuộc tính
- 5. Làm cách nào để tự động tải xuống tệp javascript?
- 6. Có cách nào để tự động tải xuống các phiên bản tải xuống của Maven không?
- 7. Tải tệp thuộc tính trong JAR?
- 8. Cách tải tệp thuộc tính trong Google App Engine?
- 9. Làm cách nào để kiểm tra tập lệnh NAnt cho dù thuộc tính có được đặt hay không?
- 10. Cách tìm hiểu xem thuộc tính có thuộc tính được tự động triển khai có phản ánh không?
- 11. Nant và thay đổi thuộc tính tệp (chỉ đọc để ghi)
- 12. Thuộc tính tự động triển khai có hỗ trợ các thuộc tính không?
- 13. Làm cách nào để đặt giá trị mặc định bằng thuộc tính "kiểu ngắn" trong VS2008 (Thuộc tính tự động)?
- 14. Làm cách nào để tạo các thuộc tính trong các tệp thuộc tính trong Mùa xuân?
- 15. Làm cách nào để thoát khỏi các ký tự đặc biệt trong khóa thuộc tính tệp
- 16. Làm cách nào để tự động tham chiếu các thuộc tính tăng lên trong C#?
- 17. Làm cách nào để tự động truy cập thuộc tính của đối tượng Java trong GWT?
- 18. Làm cách nào để tự động soạn và truy cập các thuộc tính lớp trong Python?
- 19. Có thể tải JavaScript tự động không?
- 20. GreenDAO tạo thuộc tính ID tự động
- 21. Tải tệp thuộc tính từ gói Java
- 22. Tải tệp thuộc tính vào JUnit @BeforeClass
- 23. Có cách nào để sử dụng thiết lập kiểu cho thuộc tính của thuộc tính không?
- 24. Thuộc tính enableClientBasedCulture trong Web.config có hoạt động không?
- 25. Có cách nào để tự động xác định các phụ thuộc khi thiết lập một tệp điều khiển dpkg không?
- 26. Tự động tạo thuộc tính lớp
- 27. Thuộc tính tự động VB.net - chỉ đọc?
- 28. Có cách nào để tự động tạo danh sách phụ thuộc đi kèm không?
- 29. Bạn có sử dụng tính năng tự động tải trong PHP không?
- 30. Có cách nào để tải tệp JS cục bộ không?
Dòng không thành công cho tôi với thông báo: "Nhiệm vụ không được phép trong mục tiêu. Phải ở cấp dự án". –
vakman