среда, 24 мая 2017 г.

maven-jcabi

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 достаточно большой и правильно сконфигурирован. От
 этого зависит несколько проектов, поэтому вы можете быть уверены, что 
используете самую лучшую конфигурацию всех стандартных плагинов.
 

Комментариев нет:

Отправить комментарий