0
Maven2の場合、現在Mojoのexecuteメソッドで実行されている目標名を取得するにはどうすればよいですか?正確には、Mojoのexecuteメソッド内に@goal属性の値が必要です。実行時にmaven2のMojoでゴールの名前を取得する方法
ここMaven2の場合、現在Mojoのexecuteメソッドで実行されている目標名を取得するにはどうすればよいですか?正確には、Mojoのexecuteメソッド内に@goal属性の値が必要です。実行時にmaven2のMojoでゴールの名前を取得する方法
ここ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;
}
、PluginDescriptor pluginManager.getPluginDescriptorForPrefix( "プレフィックスのために - あなた - プラグイン")からフェッチすることができます。 PluginManagerは@component role = "org.apache.maven.plugin.PluginManager"として利用可能です
私はこのソリューションをmaven2で大いに成功させましたが、maven3に切り替えると機能が停止しました。 maven3では、使用しているバージョンではなく、mavenリポジトリの最新バージョンの** mojoDescriptorList **を取得します。したがって、プラグインの最新バージョンで目標を削除し、古いプラグインを使用している場合は、** mojoDescriptorList **には古いバージョンのプラグインにはまだ存在する目標がありません。 – Pylinux