2011-09-12 35 views
6

Tôi có một dự án đa mô-đun trong maven, nơi các dự án khác cần sử dụng các lọ theo môi trường.Maven nếu khác giống như hành vi

Chúng tôi có như 4 enviroenments 1.Dev 2.UAT 3.QA 4.PROD

Có một dự án có nhu cầu sử dụng projectname-dev.jar cho cả ba môi trường (ví dụ dev, uat, QA) và projectname-prod.jar cho PROD.

Tôi đã tìm kiếm một thứ gì đó giống như một logic khác nếu tôi có thể sử dụng trong tiểu sử maven.

Tôi vẫn có thể tạo thuộc tính mới cho dự án cụ thể này và thay đổi thành '-prod' khi nó đi vào produciton, nhưng đó là phí phụ trội mà tôi không muốn thêm.

Có bất kỳ plugin nào tôi có thể sử dụng cho điều này sẽ giúp tôi hoàn thành công việc trên mà không cần thêm bất kỳ loại phí thủ công nào cho nó.

Cảm ơn

+3

Tôi sẽ chỉ chạy maven trong quá trình phát triển. Tôi sẽ sử dụng maven để làm một bản phát hành và phát hành của nó mà tôi sẽ sử dụng ** không thay đổi ** trong UAT, QA và PROD. Nếu có sự khác biệt về cấu hình giữa các môi trường, tôi sẽ duy trì những điều này một cách riêng biệt. –

+0

Vấn đề ở đây sẽ là một tổ chức nơi có ba đội dành riêng cho phát triển, uat và qa tương ứng, họ sẽ phụ thuộc vào một người để tạo ra các bản dựng của họ. :) – Neeraj

+1

Tôi sẽ có một máy chủ tích hợp liên tục, ví dụ: hudson và có nó rằng bất kỳ ai có thể thực hiện việc phát hành (với hướng dẫn) Vấn đề bạn có là UAT và QA có thể xây dựng một cái gì đó gần như nhưng không chính xác giống như DEV. Và có một cái gì đó khác nhau một lần nữa đi vào sản xuất. –

Trả lời

7

Đó không phải là những gì Maven profiles có ý định làm gì? Bạn có thể xác định các giá trị thuộc tính khác nhau trong các cấu hình khác nhau và sau đó kích hoạt một trong số chúng khi thực hiện một bản dựng.

+0

Id thay vì tạo một hồ sơ mới, tôi thà đi với việc tạo một thuộc tính mới, và chuyển thuộc tính cho maven khi Im xây dựng nó bằng cách sử dụng -Denv = 'myenv'.Đây là cách lý tưởng môi trường và xây dựng các công trình cụ thể được thực hiện trong maven. – Neeraj

+0

Tôi không đồng ý với bạn @Neeraj. axtavt là khá chính xác trong giới thiệu việc sử dụng các cấu hình. Trong tiểu sử, bạn có thể chỉ định bao nhiêu thuộc tính tùy thích cho loại xây dựng đó. Linh hoạt hơn nhiều để xác định mỗi thuộc tính trên dòng lệnh –

0

Không chính xác những gì bạn đang tìm kiếm, nhưng bạn không nên tạo các tạo phẩm theo môi trường cụ thể. Trái với ý kiến ​​phổ biến, đây là một sự lạm dụng khủng khiếp của các hồ sơ Maven. Bạn nên xây dựng một tạo phẩm phù hợp với mọi môi trường. Cấu hình của tạo phẩm, bên ngoài tạo tác, là những gì cụ thể cho từng môi trường.

+0

Có Tôi hoàn toàn đồng ý với bạn. Thu thập hơn tạo 4 cấu hình khác nhau, các tạo tác phải có cấu hình cho mỗi môi trường và đó chính xác là những gì bạn đang tìm kiếm ở đây. – Neeraj

+0

Sau đó, có lẽ chúng tôi không hiểu những gì bạn đang yêu cầu bởi vì nó có vẻ như bạn đang tìm kiếm một cách để có điều kiện chạy một xây dựng maven nhắm vào các môi trường khác nhau. Nhiều khả năng, bạn nên làm một cái gì đó giống như có maven xây dựng tạo tác của bạn và sử dụng [plugin lắp ráp] (http://maven.apache.org/plugins/maven-assembly-plugin/) để gói tạo tác cùng với nhiều cấu hình môi trường khác nhau vào một tệp zip. –

+0

Nó rất phổ biến để lưu trữ cấu hình db vào một tập tin chiến tranh. Làm thế nào bạn sẽ cấu hình này cho dev, prod mà không có các tạo phẩm khác nhau cho mỗi môi trường xây dựng? –

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