maven 插件 - 在 Mojo 中获取插件的 artifactId
maven plugin - get artifactId of plugin in Mojo
是否可以获取当前Mojo的artifactId?
@Mojo(...)
public class MyMojo extends AbstractMojo {
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}")
private File inputDirectory;
...
我可以对插件的工件 ID 进行硬编码,但我宁愿动态获取它。
顺便说一句,我想到的是您使用的是旧式注入
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}")
private File inputDirectory;
此处记录了 defaultValue 的表达式值:
http://maven.apache.org/ref/3.1.1/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html 取决于您使用的 Maven 版本。
@Parameter(defaultValue = "${project}, required = true, readonly = true)
private MavenProject project;
@Parameter(defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}", property = "inputDirectory", required = true)
private File inputDirectory;
接受的答案没有回答问题。
你可以使用一个字段来动态获取mojo的artifactId(而不是插件所附加的项目的artifactId)
@Parameter(defaultValue = "${mojo.artifactId}")
private String mojoArtifactId;
或者您的情况:
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${mojo.artifactId}")
private File inputDirectory;
是否可以获取当前Mojo的artifactId?
@Mojo(...)
public class MyMojo extends AbstractMojo {
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}")
private File inputDirectory;
...
我可以对插件的工件 ID 进行硬编码,但我宁愿动态获取它。
顺便说一句,我想到的是您使用的是旧式注入
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}")
private File inputDirectory;
此处记录了 defaultValue 的表达式值: http://maven.apache.org/ref/3.1.1/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html 取决于您使用的 Maven 版本。
@Parameter(defaultValue = "${project}, required = true, readonly = true)
private MavenProject project;
@Parameter(defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}", property = "inputDirectory", required = true)
private File inputDirectory;
接受的答案没有回答问题。
你可以使用一个字段来动态获取mojo的artifactId(而不是插件所附加的项目的artifactId)
@Parameter(defaultValue = "${mojo.artifactId}")
private String mojoArtifactId;
或者您的情况:
@Parameter(property = "project")
private MavenProject project;
@Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${mojo.artifactId}")
private File inputDirectory;