Maven - инструмент автоматизации сборки, в основном для Java-проектов. Это отличный инструмент, но у него есть один важный недостаток, который мотивировал создание подобных инструментов, таких как Gradle и SBT. Эта слабость - это многословность конфигурации. Maven получает все параметры сборки проекта из pom.xml, XML-файла, который может быть очень длинным. Я видел файлы POM с 3000 строк. Принимая во внимание 1) недавний гул DSL и 2) страх перед XML, логично, что многие люди не любят Maven из-за его pom.xml verbosity.
Но даже если вы поклонник XML, который пользуется своей строгостью и элегантностью (как и я), вам не понравится необходимость повторять себя в pom.xml для каждого проекта. Если вы работаете над несколькими проектами, дублирование кода будет огромным. В среднем веб-приложении Java используется несколько десятков стандартных плагинов Maven и почти такое же количество довольно общих зависимостей, как JUnit, Apache Commons, Log4J, Mockito и т. Д. Все они имеют свои версии и конфигурации, которые необходимо указать, если вы Хотите сохранить проект стабильным и избегать предупреждений Maven. Таким образом, как только новая версия плагина будет выпущена, вам придется пройти через все файлы pom.xml в проектах, над которыми вы работаете, и обновить их там. Очевидно, вы понимаете, что такое дублирование кода. Это катастрофа. Однако есть решение.
Jcabi-parent - очень простая зависимость Maven, внутри которой нет ничего, кроме большого pom.xml с несколькими предварительно сконфигурированными зависимостями, профилями и плагинами. Все, что вам нужно сделать, чтобы повторно использовать их все в вашем проекте, - это определить com.jcabi: parent как родительский POM:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.jcabi</groupId>
<artifactId>parent</artifactId>
<!-- check the latest version at http://parent.jcabi.com -->
<version>0.32.1</version>
</parent>
[...]
</project>
Это все, что вам нужно. Теперь вы можете удалить большинство ваших пользовательских конфигураций из pom.xml и использовать значения по умолчанию, предоставленные jcabi-parent. Его pom.xml достаточно большой и правильно сконфигурирован. От
этого зависит несколько проектов, поэтому вы можете быть уверены, что используете самую лучшую конфигурацию всех стандартных плагинов.
Комментариев нет:
Отправить комментарий