У меня большой опыт работы с обоими языками, а также я написал несколько плагинов для Maven. Я написал их на Java, потому что у меня не было выбора, но если бы у меня был выбор, я бы выбрал Groovy.
По моему мнению, если производительность не является абсолютно критичной, Groovy обычно является лучшим выбором, чем Java, независимо от того, что вы делаете. Я говорю это потому, что для написания чего-либо в Groovy обычно требуется на 30-50% меньше кода, чем в Java. Большая часть кода, который вы пропускаете при использовании Groovy, - это то, что считается стандартным Java-кодом.
Компактность Groovy обусловлена двумя факторами
- Более сложные языковые функции (замыкания, свойства, перегрузка операторов, аргументы по умолчанию и т. Д.)
Высокопроизводительные расширения JDK. GDK добавляет множество чрезвычайно полезных методов в стандартные библиотеки Java. Например, в Java требуется около 10-20 строк кода для чтения содержимого файла (и правильной обработки исключений). Используя Groovy, вы можете просто использовать:
String fileContent = new File('/foo/bar/baz.txt').text
Кроме того, GMaven обеспечивает поддержку написания плагинов Maven в Groovy , который выглядит намного лучше, чем класс AbstractMojo
, который необходимо использовать при написании плагина в Java
Помимо
Вы упомянули, что вашему плагину нужно будет проанализировать pom.xml. Если это pom.xml проекта, в котором установлен ваш плагин, вам не нужно анализировать содержимое, потому что вся информация о проекте доступна плагину через экземпляр MavenProject
.