2011-09-26 24 views
14

gelen bir maven eklentisinden bir özelliğinin nasıl belirleneceği hakkında burada bazı sorular (bunların çoğu bir uygulama için sürüm numarası bahsettik) okudum. Bunu yapmanın kolay bir yolu yok gibi görünüyor ve bulduğum en iyi çözüm, eklentiden güncellenen ve istenen kaynakları filtrelemek için ana pompa dosyası tarafından kullanılan bir filter.properties dosyasına sahip olmak.Set maven mülkiyet eklenti

Değişkenler kaynaklar dahil edilebilir: Maven belgelerine (Maven filter plugin) bu okuduktan sonra

ben başka bir çözüm çalıştı. Bu değişkenler, filtre kaynaklarından ve komut satırından sistem özelliklerine, senin proje özelliklerine gelebilir $ {...} sınırlayıcı tarafından ifade.

Ben değişkenli sistem özelliklerinden okunabileceğini ilginç buldum.

System.setProperty("currentVersion", appCurrentVersion); 

Ancak, süzülmüş kaynaklar bu değeri okumak için görünmüyor: Yani böyle bir sistem özelliği ayarlamak için benim eklenti güncellenmiştir. Bu yaklaşımda neyin yanlış olduğunu kimse anlatabilir mi?

UPDATE: Eklentimi geçerliliği aşamasında çalıştırıyorum.

Çok teşekkürler.

cevap

18

Maven Proje özelliği olarak ayarlayın Sistem Mülkiyet olarak ayarlamak etmeyin

// inject the project 
/** @parameter default-value="${project}" */ 
private org.apache.maven.project.MavenProject project; 

// and in execute(), use it: 
project.getProperties().setProperty("currentVersion", appCurrentVersion); 

Bkz:

+0

Mükemmel! Çok sağol Sean. – PaquitoSoft

3

Maven initialize phase özelliklerini ayarlar. Bu aşamada maven'in sistem özelliklerini yüklediğini varsayalım. Ve bundan sonra maven sistem özelliklerini tekrar yüklemiyor. Bu aşamadan sonra yüklü olmayan bir sistem özelliği eklemeyi denerseniz.

validate phase daki eklentisi çalıştırmak için deneyin.

+0

Zaten koşuyorum validate aşamasında eklenti. Üzgünüm, daha önce bahsetmedim. – PaquitoSoft

İlgili konular