[英]Dependency injection in a maven plugin
我正在开发一个maven插件并使其更易测试我想使用轻量级依赖注入框架(如Guice)来管理服务等但是我可以让它们与应用程序集成我无法获得它们与我的插件集成在一起。 除了以静态方式进行依赖注入外,有没有办法做到这一点?
Maven已经为您提供了名为Plexus的嵌入式IoC容器。 您可以包含其他组件
public class MonitorMojo
extends AbstractMojo
{
/**
* The website monitor component instance that will be injected
* by the Plexus runtime.
* @component
*/
private WebsiteMonitor monitor;
public void execute()
throws MojoExecutionException, MojoFailureException
{
// TODO Auto-generated method stub
}
}
并参考属性
@Parameter( property = "sayhi.greeting", defaultValue = "Hello World!" )
private String greeting;
您可以在maven插件开发站点和plexus文档中找到更多信息。
还有另一个框架(一个小型库),它为Maven插件开发提供了比carlosvin评论中提到的更好的CDI支持(Maven JSR 330)。
这是库: Maven CDI Plugin Utils 。
它不仅提供DI,还提供一些其他概念,例如基于工作流的处理模型,默认情况下具有回滚功能和可扩展性。
我将很快发布关于这个库的博客文章,但我认为文档应该解释所有的概念。 顺便说一句。 这是从CDI已知的DI,具有全功能的Weld SE容器和基于类路径的bean发现!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.