Мне нравится maven. Мне это очень нравится. Поскольку я переключился на него с Ant, я сохранил много часов работы, строит файлы сборки, администрирует зависимости и т.д., И сохранил много места в моем исходном репозитории управления.
Проблема в том, что файлы maven слишком многословны. Не то, что Ant файлы, где меньше подробностей, но их многословие было подходящим для того, что они делают.
Например, вместо записи:
<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<dependency>
<groupId>com.myosproject</groupId>
<artifactId>superlibrary</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Я хотел бы написать что-то вроде
<dependencies>
commons-logging/commons-logging/1.1.1
com.myosproject/superlibrary/7.5
test:junit/junit/3.8.1
</dependencies>
Или вместо
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
Я хотел бы
<build version="1.5"/>
И (последний пример, и мы закончили), вместо записи:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<encoding>UTF8</encoding>
</configuration>
</execution>
</executions>
</plugin>
Я бы не хотел ничего писать. I.e., maven обнаружил бы наличие папки native2ascii и выполнил бы правильную по умолчанию.
Я знаю, что я смешиваю встроенную функциональность с плагинами и другими вещами, но, пожалуйста, попробуйте взглянуть с точки зрения пользователя maven, который очень доволен инструментом, но думает, что он может быть счастливее.
Итак:
-
Есть ли способ настроить maven для работы следующим образом? (И было бы разумно сделать это)
-
Есть ли еще один инструмент, о котором я не знаю, что это делает?