Skip to content

Commit 25d920f

Browse files
hboutemymichael-o
authored andcommitted
[MNG-5695] document Maven 3.2.5+ scoped components usage
This closes #236
1 parent 6418490 commit 25d920f

File tree

1 file changed

+27
-5
lines changed
  • maven-plugin-tools-annotations/src/site/apt

1 file changed

+27
-5
lines changed

maven-plugin-tools-annotations/src/site/apt/index.apt

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public class MyMojo
8585
@Parameter( name = "parameter",
8686
alias = "myAlias",
8787
property = "a.property",
88-
defaultValue = "an expression, possibly with ${variables}",
88+
defaultValue = "an expression, possibly with ${variables} and pseudo-parameter expressions ${project.xxx.yyy}",
8989
readonly = <false|true>,
9090
required = <false|true> )
9191
private String parameter;
@@ -94,27 +94,42 @@ public class MyMojo
9494
hint = "..." )
9595
private MyComponent component;
9696

97+
// pseudo-parameters (marked read-only) permitting injection of Maven build context objects
9798
// sample objects taken from Maven API through PluginParameterExpressionEvaluator
99+
// https://maven.apache.org/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html
100+
// plugins targetting Maven 3.2.5+ (after MNG-5695) should not use these pseudo-parameters any more,
101+
// but @Component and Maven APIs to get better compiler-time checks
98102

99-
@Parameter( defaultValue = "${session}", readonly = true )
103+
// @Parameter( defaultValue = "${session}", readonly = true )
104+
@Component // since Maven 3.2.5, thanks to MNG-5695
100105
private MavenSession session;
101106

102-
@Parameter( defaultValue = "${project}", readonly = true )
107+
// @Parameter( defaultValue = "${project}", readonly = true )
108+
@Component // since Maven 3.2.5, thanks to MNG-5695
103109
private MavenProject project;
104110

105-
@Parameter( defaultValue = "${mojoExecution}", readonly = true )
106-
private MojoExecution mojo;
111+
// @Parameter( defaultValue = "${mojoExecution}", readonly = true )
112+
@Component // since Maven 3.2.5, thanks to MNG-5695
113+
private MojoExecution mojoExecution;
114+
115+
@Parameter( defaultValue = "${reactorProjects}", readonly = true )
116+
// prefer using session.getProjects()
117+
private List<MavenProject> reactorProjects;
107118

108119
@Parameter( defaultValue = "${plugin}", readonly = true ) // Maven 3 only
120+
// prefer using mojoExecution.getMojoDescriptor()
109121
private PluginDescriptor plugin;
110122

111123
@Parameter( defaultValue = "${settings}", readonly = true )
124+
// prefer using session.getSettings()
112125
private Settings settings;
113126

114127
@Parameter( defaultValue = "${project.basedir}", readonly = true )
128+
// prefer using project.getBasedir()
115129
private File basedir;
116130

117131
@Parameter( defaultValue = "${project.build.directory}", readonly = true )
132+
// prefer using project.getBuild().getDirectory()
118133
private File target;
119134

120135
/**
@@ -144,3 +159,10 @@ public class MyMojo
144159

145160
* {{{/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html}PluginParameterExpressionEvaluator}},
146161
used to evaluate plugin parameters values during Mojo configuration,
162+
163+
* pseudo parameters:
164+
165+
* <<<PluginParameterExpressionEvaluator>>> {{{https://maven.apache.org/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html}javadoc}} /
166+
{{{https://maven.apache.org/ref/current/maven-core/xref/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html}source}}
167+
168+
* {{{https://issues.apache.org/jira/browse/MNG-5695}MNG-5695}}: scoped objects added to Guice/Sisu in {{{https://maven.apache.org/ref/current/maven-core/}maven-core}} 3.2.5

0 commit comments

Comments
 (0)