Статьи

Улучшение Maven проектов

В течение долгого времени Maven  был инструментом сборки defacto и управления зависимостями для проектов Java. Плагины добавили некоторые интересные вещи, но теперь Maven пополнился новыми функциями, улучшающими другие:

  • Maven Lifecycle
  • Мавен Полиглот
  • Maven Wrapper

Все эти новые функции благодаря  Такири , который возглавляет Джейсон ван Зил ( @jvanzyl ), отец Maven.

Требования:

  • Maven 3.3.1
  • Java 7

Maven Lifecycle

Избегайте повторной компиляции, если в исходном коде нет изменений. Вам просто нужно выполнить два простых шага, чтобы включить эту удивительную функцию. Экономьте свое время!

1.  Добавьте плагин ниже:

<build>
  <plugins>
    <plugin>
      <groupId>io.takari.maven.plugins</groupId>
      <artifactId>takari-lifecycle-plugin</artifactId>
      <extensions>true</extensions>
    </plugin>
  </plugins>
</build>

2. Переключите ваш ток  packaging с  jar на  takari-jar.

В журнале видно, что плагин вступил в силу. Теперь, если вы уже скомпилировали, вам не придется снова компилировать, если вы не внесете изменения в свой исходный код.

Мавен Полиглот

Создание  pom файла в формате XML является многословным. Теперь вы можете создавать свой pom на разных языках: Atom, Clojure, Groovy, Ruby, Scala, Yaml. И воспользоваться каждым из них.

Предварительно необходимое:

  1. Внутри проекта создайте  .mvn/extensions.xml файл, где будет иметь место языковая зависимость:

Атом:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-atom</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

Clojure:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-clojure</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

Groovy:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-groovy</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

Рубин:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-ruby</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

Scala:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-scala</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

YAML:

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
  <extension>
      <groupId>io.takari.polyglot</groupId>
      <artifactId>polyglot-yaml</artifactId>
      <version>0.1.6</version>
  </extension>
</extensions>

Вы хотите перенести xml на любой другой язык? Вы можете сделать это, выполнив команду ниже:

mvn io.takari.polyglot:polyglot-translate-plugin:translate -Dinput=pom.xml -Doutput=pom.{format}

Где  format может быть  atomcljgroovyrbscala и  yml.

Maven Wrapper

Совместное использование проектов является распространенным явлением, и иногда у нас есть конкретные версии из нашего инструмента сборки Теперь вам не нужно спрашивать вашего друга, какая версия maven вам нужна, если используется проект maven  maven-wrapper. Для этого вам просто нужно запустить:

mvn -N io.takari:maven:wrapper

Теперь вы можете сделать сборку  mvnw clean install. Если вы хотите посмотреть, какую версию Maven вы скачаете, загляните  .mvn/wrapper/maven-wrapper.properties внутрь своего проекта.