[英]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.