В течение долгого времени 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. И воспользоваться каждым из них.
Предварительно необходимое:
- Внутри проекта создайте
.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
может быть atom
, clj
, groovy
, rb
, scala
и yml
.
Maven Wrapper
Совместное использование проектов является распространенным явлением, и иногда у нас есть конкретные версии из нашего инструмента сборки Теперь вам не нужно спрашивать вашего друга, какая версия maven вам нужна, если используется проект maven maven-wrapper
. Для этого вам просто нужно запустить:
mvn -N io.takari:maven:wrapper
Теперь вы можете сделать сборку mvnw clean install
. Если вы хотите посмотреть, какую версию Maven вы скачаете, загляните .mvn/wrapper/maven-wrapper.properties
внутрь своего проекта.