Каковы скрытые функции Maven2?Каковы скрытые возможности Maven2?
ответ
Вы можете использовать settings.xml, чтобы заставить все Maven сборки, работающие на локальном компьютере, чтобы использовать локально установленный Maven прокси. Сохраняйте себя и время сети.
<settings 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/settings-1.0.0.xsd">
<profile>
<id>localcacheproxies</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>localCacheProxy</id>
<url>http://my-local-proxy.com/maven-proxy</url>
</repository>
</repositories>
</profile>
</profiles>
Обратите внимание, что пространство имен заголовков в этом settings.xml также дает достойный IntelliSense в отличие от других примеров, размещенных здесь. (создайте в своем домашнем каталоге папку .m2 на windows, linux и mac и все os'es)
С помощью плагина maven-dependency можно разрешать конфликты зависимостей и проблемы с циклической зависимостью.
добавить на pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
Затем запустите МВН зависимость: разрешить или МВН зависимость: строить- путь к классам, чтобы проверить его.
Подробнее о плагине зависимостей: http://maven.apache.org/plugins/maven-dependency-plugin/howto.html
Я уверен, что вам не нужно редактировать свой pom.xml для этого. – lindelof 2008-11-22 12:30:56
Indee, maven автоматически загружает любой плагин, если имя совпадает. Тем не менее, это хорошая оценка, чтобы добавить его в pom и специально включить определенную версию (которую я забыл), чтобы избежать неожиданностей с различными средами позже. – Kuukage 2008-11-22 21:44:45
Посмотрите на зависимость: проанализируйте также.
- наследования проекта
- агрегации проекта
- сборки: сборка
- отчетности (FindBugs, Checkstyle, клевер, PMD, и т.д.)
Иногда у вас есть файл, который должен содержать некоторые значение, которое может быть обнаружено только во время сборки. Возможно, у вас есть Java-класс, который проверяет, не закончился ли период оценки, и вы определяете этот период как «через тридцать дней после компиляции этой сборки». Вам нужен способ ввести текущую дату или другое свойство непосредственно в сборку.
Maven имеет прохладную, скрытую функцию, называемую фильтрацией (Documentation here). При фильтрации, вы можете попросить Maven искать образцы в некоторых исходных файлов и заменить их на некоторое значение, и это, как легко активировать, как это:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
Что вы можете вставить в фильтр? Любая переменная среды, большинство значений в файле pom и информация о компиляторе java. Теперь, если вы измените номер своей версии в Maven, вам не нужно искать ваш файл what.properties и обновлять свою версию там. Вы можете просто изменить его в Maven, и все готово.
все функции практически скрыты, потому что документация настолько ужасная – 2011-04-04 15:44:18