首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Sisu将maven属性注入mojo

使用Sisu将maven属性注入mojo
EN

Stack Overflow用户
提问于 2015-03-16 03:10:38
回答 1查看 341关注 0票数 0

我有两个使用相同重复方法的插件。然后我想重构这些方法,并将其移动到一个共享类中,并将其托管在一个依赖jar中。

这些方法需要一些maven属性,如MavenProject、PluginDescriptor和其他一些maven类,这些类通常被注入到mojo中。

有没有这样的属性可以直接注入到共享类中?

或者我需要将它们注入mojo,然后调用一些初始化方法?

我用@Named声明了共享类,并用@Inject创建了一个构造函数。mojo类也有一个构造器(下面的代码)。然后我试着运行它。所有的值都被正确地注入到mojo中,但是共享类对象的内部属性值为空。

代码语言:javascript
复制
@Inject
public SharedValidationHelperDefault(final MavenProject project,
        final BuildContext buildContext,
        final RuntimeInformation runtimeInformation, final Log log) {
    this.buildContext = buildContext;
    this.project = project;
    this.runtimeInformation = runtimeInformation;
    this.log = log;
}

..。

代码语言:javascript
复制
@Inject
public AbstractContainerPackMojo(
        final RuntimeInformation runtimeInformation,
        final MavenProjectHelper projectHelper,
        final BuildContext buildContext, SharedValidationHelper validationHelper) {
    this.validationHelper = validationHelper;
    this.buildContext = buildContext;
    this.runtimeInformation = runtimeInformation;
    this.projectHelper = projectHelper;
}
EN

回答 1

Stack Overflow用户

发布于 2015-03-16 05:57:38

Mojo批注和Component/JSR330批注之间有一个区别:它们的用途不同,注入方式也不同。然而,也可以有一个抽象的/共享的Mojo。看看surefire项目: surefire-plugin和failsafe-plugin在单独的模块( http://maven.apache.org/surefire/maven-surefire-common/index.html )中都有一些共享的Mojo代码和配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29064968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档