2008-11-22 4 views

ответ

6

Вы можете использовать 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)

1

С помощью плагина 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

+0

Я уверен, что вам не нужно редактировать свой pom.xml для этого. – lindelof 2008-11-22 12:30:56

+0

Indee, maven автоматически загружает любой плагин, если имя совпадает. Тем не менее, это хорошая оценка, чтобы добавить его в pom и специально включить определенную версию (которую я забыл), чтобы избежать неожиданностей с различными средами позже. – Kuukage 2008-11-22 21:44:45

4

Посмотрите на зависимость: проанализируйте также.

1
  1. наследования проекта
  2. агрегации проекта
  3. сборки: сборка
  4. отчетности (FindBugs, Checkstyle, клевер, PMD, и т.д.)
2

Иногда у вас есть файл, который должен содержать некоторые значение, которое может быть обнаружено только во время сборки. Возможно, у вас есть 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, и все готово.