2011-09-12 14 views
6

Diğer projelerin çevreye göre kavanozları kullanması gerektiği maven'de çok modüllü bir projem var.Maven if-else like a davranış

Biz, yani dev (4 enviroenments 1.Dev 2.UAT 3.QA her üç ortamlar için projectname-dev.jar kullanmak isteyen bir proje var 4.PROD

gibi var uat, QA) ve PROD için projectname-prod.jar.

Maven profillerinde kullanabileceğim bir if-else mantığı gibi bir şey için google araması yaptım.

Hala bu özel proje için yeni bir özellik oluşturmak ve produciton girdiğinde '-prod' olarak değiştirilemez, ancak şu eklemek istemiyorum ekstra havai.

beni kendisine elle yükü her türlü eklenmeden yapılabilir yukarıdaki iş bulmak yardımcı olacak bu kendisi için kullanabilirsiniz orada herhangi eklentileri var.

Teşekkür

+3

Sadece maven'i geliştiririm. Bir sürüm yapmak için maven kullanıyorum ve bu sürüm UAT, QA ve PROD'de ** değişmemiş ** kullanacağım. Ortamlar arasında konfigürasyon farklılıkları varsa bunları ayrı ayrı muhafaza ediyorum. –

+0

Burada sorun şu ki, kalkınma, uat ve qa'ya adanmış üç takımın bulunduğu bir organizasyon, bir insanı kendi yapılarını oluşturmak için bağlı olacaktı. :) – Neeraj

+1

Sürekli bir entegrasyon sunucusuna sahip olacağım örn. hudson ve herkesin serbest bırakma işlemini gerçekleştirebilmesini sağlayın (talimatlarla). Elinizdeki problem, UAT ve QA'nın neredeyse bir şey inşa edebilecekleri, ancak DEV ile tam olarak aynı olamayacağıdır. Ve yine farklı bir şey üretin. –

cevap

7

yapmaya niyetli ne Maven profiles değil midir? Farklı profil değerlerini farklı profillerde tanımlayabilir ve ardından bir yapı gerçekleştirirken bunlardan birini etkinleştirebilirsiniz.

+0

Yeni bir profil oluşturmaktan ziyade, yeni bir özellik oluşturmayı tercih ediyorum ve mülkünü -Denv = 'myenv' kullanarak oluşturduğumda maven'e geçirmeyi tercih ediyorum. Bu, ideal ortamlar ve envanter özel yapıların nasıl yapıldığıdır. maven. – Neeraj

+0

Size katılmıyorum @Neeraj. profillerin kullanılmasını tavsiye etmede akstavt oldukça doğrudur. Profilde, bu yapı türüne özel olarak istediğiniz kadar özellik belirtebilirsiniz. –

0

Tam olarak aradığınız şey değil, çevreye özgü eserler oluşturmamanız gerekir. Popüler düşüncenin aksine, bu Maven profillerinin kötüye kullanımıdır. Herhangi bir ortama uygun bir eser inşa etmelisiniz. Yapıya dış olan artefaktın yapılandırması, her bir çevreye özgü olan şeydir.

+0

komut satırında her özelliği tanımlayan çok daha esnek Evet Size tamamen katılıyorum. 4 farklı profil oluşturmaktan daha fazla, eserler her ortam için bir konfigürasyona sahip olmalı ve bu tam olarak burada ne arıyorum. – Neeraj

+0

O zaman ne istediğinizi anlamıyoruz, çünkü farklı ortamlarda hedeflenen bir maven yapısını koşut olarak çalıştırmak için bir yol arıyormuşsunuz gibi görünüyor. Muhtemelen, maven'in yapıtınızı oluşturması ve [montaj eklentisi] 'ni (http://maven.apache.org/plugins/maven-assembly-plugin/) kullanarak çok sayıda farklı ortam yapılandırmasıyla birlikte sunması için bir şey yapmalısınız. bir zip dosyasına. –

+0

Db yapılandırmasını bir savaş dosyasına depolamak çok yaygın. Bunu, her yapı ortamı için farklı eserler olmadan, dev, prod için nasıl yapılandırabilirsiniz? –