我正在开发一个maven插件并使其更易测试我想使用轻量级依赖注入框架(如Guice)来管理服务等但是我可以让它们与应用程序集成我还没有能够将它们与我的插件集成。除了以静态方式进行依赖注入外,有没有办法做到这一点?
答案 0 :(得分:1)
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 plugin dev site和plexus documentation找到更多信息。
答案 1 :(得分:0)
还有另一个框架(一个小型库),它为Maven插件开发提供了比carlosvin评论中提到的更好的CDI支持(Maven JSR 330)。
这是图书馆:Maven CDI Plugin Utils。
它不仅提供了DI,还提供了一些其他概念,例如基于工作流程的处理模型,默认情况下具有回滚功能和可扩展性。
我将很快发布关于这个库的博客文章,但我认为文档应该解释所有的概念。顺便说一句。这是从CDI已知的DI,具有全功能的Weld SE容器和基于类路径的bean发现!