我正在编写一个maven插件,根据我以前的经验,我知道我的mojo类最终会用一堆@Parameter
进行配置。我想做的是将这些配置参数注入第二个仅配置类,而不是将这些配置参数注入mojo类。这可能吗?
我当前的操作方式是mojo类,只是构造一个Configuration对象,并在其中传递所有注入的参数。像这样
@Mojo
public class MyMojo extends AbstractMojo {
private MyConfig myConfig;
@Parameter
private String myArg1;
...
public void execute() {
myConfig = new MyConfig(myArg1, myArg2, ...);
}
}
但是,这很丑陋。我希望DI直接在Config中发生
最佳答案
如果MyConfig是pojo,则也可以在此处使用@Parameter
,但是,您的配置将如下所示:
<configuration>
<myConfig>
<someField>value</someField>
</myConfig>
</configuration>
第二个技巧是使用setter,因为@Parameter注释字段将使用匹配的 public setter(如果有)。
private MyConfig myConfig = new MyConfig();
@Parameter
private String someField;
// matching setter for @parameter-annotated field
public void setSomeField( String field )
{
myConfig.setSomeField( field );
}
关于maven - 在Maven插件的不同类中注入(inject)@Parameter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20696862/