如何在运行时获取maven2的Mojo中的目标名称

时间:2009-05-04 08:40:40

标签: maven-2 maven-plugin mojo

对于Maven2,如何在Mojo的execute方法中获取当前正在执行的目标名称?确切地说,我需要Mojo的execute方法中@goal属性的值。

1 个答案:

答案 0 :(得分:1)

public static String getGoalName(PluginDescriptor pluginDescriptor, String mojoClassName) {
        String goalName=null;
        List<MojoDescriptor> mojoDescriptorList = pluginDescriptor.getMojos();
        for (MojoDescriptor mojoDescriptor : mojoDescriptorList) {
            if (mojoDescriptor.getImplementation().equals(mojoClassName)) {
                goalName=mojoDescriptor.getGoal();
                break;
            }
        }
        return goalName;
    }

这里,可以从pluginManager.getPluginDescriptorForPrefix(“prefix-for-your-plugin”)获取PluginDescriptor。 PluginManager可用作@component role =“org.apache.maven.plugin.PluginManager”