覆盖默认值
我目前正在尝试扩展现有的项目。不幸的是我对 plexus 完全陌生。我对 Spring 有很大的偏见,所以请告诉我这种方法是否完全错误。
让我描述一下我想要做什么:
在现有项目中,有一个角色为“A”(实现默认A)的组件,其需求为角色“B”的“propertyB”。在同一个 Components.xml 中,有一个角色“B”的组件(实现 DefaultB)。这通常会自动注入到 DefaultA 的 propertyB 属性中。到目前为止,一切都很好。
现在我想创建一个由单独的 jar 提供的角色“B”(实现 SpecialB)的组件,并使其覆盖“DefaultB”的默认实现。
这可能吗?如果是的话......它是如何完成的?
我实际上想做的是创建一个 ModelValidator 作为 flexmojos maven 插件的一部分,它应该覆盖 Maven 3 的 DefaulModelValidator 实现。
Chris
I am currently trying to extend an existing project. Unfortunately I am completely new to plexus. I am greatly Spring biassed, so please tell me if the approach is completely wrong.
Let me describe what I want to do:
In the existing project there is a component with role "A" (Implementation DefaultA) that has a requirement "propertyB" of role "B". In the same components.xml there is a component of role "B" (Implementation DefaultB). This is usually automatically injected into the propertyB property of DefaultA. So far so good.
Now I would like to create a component of role "B" (Implementation SpecialB) provided by a separate jar and make that override the default implementation of "DefaultB".
Is this possible and if yes ... how is it done?
What I am actually trying to do, is to create a ModelValidator as part of the flexmojos maven plugin, which should override the DefaulModelValidator implementation of Maven 3.
Chris
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧......所以解决方案实际上很简单。
如果您定义一个使用相同角色定义扩展相同接口的组件,并且只需将包含该组件的 jar 放在 MAVEN_HOME/lib/ext 目录中,则将使用您的组件而不是默认组件。
对此进行了记录并在我的公司 confluence 中上传了一个示例 Maven 项目:
https://dev.c-ware.de /confluence/display/PUBLIC/Flexmojos+in+Continously+Integration+Builds
克里斯
Ok ... so the solution is actually quite easy.
If you define a component extending the same interface with the same role-definition and simply place a jar with that component in the MAVEN_HOME/lib/ext directory, your component will be used instead of the default.
Documented this and uploaded a sample maven-project in my companies confluence:
https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+in+Continuous+Integration+Builds
Chris