2011-11-01 77 views
0

我使用flexmojos插件相當多,試圖幫助flexmojos郵件列表上的人儘可能好。構建自定義Maven ModelValidators

在幫助時,我可以看到手中充滿了各種問題,並且通常都有相同的解決方案。

我現在的想法是爲flexmojos添加一些驗證代碼,以便人們更容易找出發生了什麼問題。在查看Maven代碼時,我發現了ModelValidators(主要是因爲我試圖找到一種方法來擺脫那些煩人的範圍警告)。我認爲創建一個實現ModelValidator的驗證器並將其包含在插件中是一個好主意。

不幸的是,我找不到一個文檔化的方式來提供自定義驗證器。如果DefaultModelValidator是Maven支持的唯一一個,那麼在這裏有人請指導我如何完成這個工作,或者阻止我再次訪問。

克里斯

回答

0

好吧......我終於figgured了一個解決我的問題。這裏是:

一般來說,Maven不支持我想要的。幸運的是有辦法做到這一點。 當我重新配置Maven時,我必須創建一個名爲ModelValidator的組件。如果我然後將包含此組件的jar放在我的MAVEN_HOME/lib/ext目錄中,它將覆蓋編織,並使用我的ModelValidator而不是默認的。

@Component(role = ModelValidator.class) 
public class FMDefaultModelValidator extends DefaultModelValidator { 
    @Override 
    public void validateEffectiveModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) { 
     //super.validateEffectiveModel(model, request, problems); 
    } 
} 

有了這個技巧,我可以做任何我想要的驗證。 我記錄了這一點,並在我的公司彙總中添加了一個默認項目: https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+in+Continuous+Integration+Builds