我正在尝试创建我的第一个Maven插件,为此,我需要在Mojos中访问MavenSession。我在很多地方都发现下面的代码片段就足够了,但是我总是以mavenSession对象为空,尽管在Maven日志(使用我的插件的POM.xml)中,似乎已经传递了maven session ,或者至少已填充-但不会注入(inject)到MavenSession对象中。
谁能告诉我我想念的东西吗?
谢谢!
/**
* The Maven Session
*
* @required
* @readonly
* @parameter
* expression="${session}"
*/
private MavenSession mavenSession;
我还将以下内容添加到了插件的POM.xml中(基于我在某处找到的评论):
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.2.5</version>
</dependency>
并且来自日志:
[DEBUG] Configuring mojo 'com.ofernicus.helpers:resource-helper:1.0-SNAPSHOT:iterate' with basic configurator -->
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@1a785a79
[DEBUG] (f) mavenProject = MavenProject: com.ofernicus.consumers:resource-helper-consumer:1.0-SNAPSHOT @ C:\Users\oferlan\workspaces\Maven\PluginConsumer\resource-helper-consumer\pom.xml
最佳答案
多亏了这里的回复,我终于找到了问题所在:
我正在尝试从execute()方法中名为的方法访问mavenSession和mavenProject。我以为一旦注入(inject),这些成员就可以在我的Mojo范围内的任何地方访问和填充-这是错误的。我将代码本身移到了execute()方法中,此问题已解决。
谢谢大家!