【问题标题】:maven plugin - get artifactId of plugin in Mojomaven 插件 - 在 Mojo 中获取插件的 artifactId
【发布时间】:2015-07-14 18:37:03
【问题描述】:

是否可以获取当前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,但我宁愿动态获取它。

【问题讨论】:

  • 为什么需要mojo的artifactId?目的是什么?
  • 我们有很多插件需要维护。由于我们仍处于开发阶段,它们往往会发生很大变化。一些插件需要输入源(参见示例)。我希望将这些源放在与工件标识符同名的目录中,以保持对齐和结构化。
  • 首先我会使用${project.build.sourceDirectory} 而不是${project.basedir}。为什么需要维护很多插件?有什么问题?在我看来,你做错了什么?除了根据插件的 artifactid 命名文件夹 嗯...更好的名称基于源的想法,如src/main/groovysrc/main/cpp

标签: maven maven-plugin


【解决方案1】:

接受的答案没有回答问题。

您可以使用字段来动态获取 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;

【讨论】:

    【解决方案2】:

    顺便说一句,我想到的是您使用的是旧式注入

    @Parameter(property = "project")
    private MavenProject project;
    
    @Parameter(property = "inputDirectory", defaultValue = "${project.basedir}/src/main/${artifact id of the plugin}")
    private File inputDirectory;
    

    They should look like this:

    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;
    

    【讨论】:

      猜你喜欢
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多