Интеграция плагинов отчетности Maven - PullRequest
5 голосов
/ 20 июля 2009

Мне нужно настроить плагины Maven. Я скачал банки. Может кто-нибудь сказать мне, что мне делать дальше, чтобы интегрировать или настроить плагины с Maven? Должен ли я скопировать JAR-файлы в родительский каталог или мне нужно отредактировать какой-либо файл?

Плагины:

  • Java2HTML
  • JDepend
  • Checkstyle
  • Clover
  • Cobertura
  • EMMA
  • FindBugs
  • JavaNCSS
  • PMD
  • QALab
  • Xradar
  • сонар

Ответы [ 3 ]

13 голосов
/ 20 июля 2009

Если Maven имеет доступ к центральному репозиторию, он загрузит большинство плагинов (некоторые не размещены в центральном репозитории, для доступа к которым вам нужно определить дополнительный репозиторий в вашем pom или настройках). Если зависимости настроены в вашем POM, Maven автоматически попытается загрузить их, когда вы выполните соответствующую цель. Для перечисленных вами зависимостей это mvn site .

Большинство перечисленных вами jar-файлов являются отчетами, поэтому их следует объявить, например, в разделе report POM (я бы также объявил версии, чтобы убедиться, что вы получаете ожидаемый плагин):

<reporting>
  <plugins>
    <plugin>
      <artifactId>maven-checkstyle-plugin</artifactId>
    </plugin>
    <plugin>
      <artifactId>maven-pmd-plugin</artifactId>
      <configuration>
        <linkXref>true</linkXref>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>2.1</version>
      <configuration>
        <formats>
          <format>html</format>
          <format>xml</format>
        </formats>
        <outputDirectory>target/site/cobertura</outputDirectory>
      </configuration>
    </plugin>
    <plugin>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <configuration>
        <outputDirectory>${basedir}/target/surefire-reports</outputDirectory>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>jdepend-maven-plugin</artifactId>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <configuration>
        <xmlOutput>true</xmlOutput>
        <effort>Max</effort>
      </configuration>
    </plugin>
  </plugins>
</reporting>

Некоторые сведения о модели исполнения плагинов Maven: Когда вы запускаете mvn site , это сокращение для «запуска цели сайта из последней версии плагина сайта», т.е. оно эквивалентно mvn site: site , что в свою очередь сокращение для mvn org.apache.maven.plugins: maven-site-plugin: ПОСЛЕДНИЕ: site

Maven попытается связаться с центральным репозиторием, определит ПОСЛЕДНЮЮ версию из файла maven-metadata.xml, а затем загрузит ее (и любые ее зависимости, которые также отсутствуют) перед выполнением.

Если вы находитесь за прокси-сервером, вы можете увидеть сообщение об ошибке в журнале сборки, например:

[INFO] The plugin 'org.apache.maven.plugins:maven-site-plugin' does not exist or no valid version could be found

Для решения этой проблемы вы можете объявить настройки прокси в вашем Maven settings.xml (в [MVN_HOME] /conf/settings.xml). Они закомментированы по умолчанию, но выглядят примерно так:

<proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>http</protocol>
  <username>proxyuser</username>
  <password>proxypass</password>
  <host>proxy.host.net</host>
  <port>80</port>
  <nonProxyHosts>local.net,some.host.com</nonProxyHosts>
</proxy>

Замените значения имени пользователя, пароля, хоста и порта на соответствующие для вашей среды, и Maven сможет загрузить необходимые зависимости.

Для получения более подробной информации об использовании Maven, ознакомьтесь с Maven: полное руководство от Sonatype, он-лайн и бесплатный.

1 голос
/ 20 июля 2009

Сираков прав; Maven загрузит и установит плагины автоматически при их использовании.

Вы можете либо запустить их напрямую (для одноразовых заданий), либо настроить их в своем файле pom.xml - это также позволит вам затем настроить и настроить автоматический запуск, например, для генерации исходного кода или отчета. на тестовом покрытии. Основным преимуществом этого является то, что вы можете определить один набор конфигураций плагинов в совместно используемом родительском pom и повторно использовать одни и те же конфигурации во всех ваших проектах, сохраняя при этом возможность переопределять унаследованную конфигурацию в каждом подпроекте при необходимости - одно из самых больших преимуществ использования Maven в более крупных проектах.

Каждый плагин имеет свои параметры конфигурации, стандартные параметры задокументированы в http://maven.apache.org/plugins/. Другим хорошим ресурсом является книга О'Рейли Мэйвена, онлайн на http://www.sonatype.com/books/maven-book/reference/

Пример конфигурации для cobertura:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>2.3</version>
    <configuration>
        <outputDirectory>${project.build.directory}/pmd</outputDirectory>
        <targetDirectory>${project.build.directory}</targetDirectory>
        <aggregate>true</aggregate>
        <!--  CPD minimum tokens to report on (5 to 10 duplicate lines)    --> 
        <minimumTokens>100</minimumTokens> 
        <minimumPriority>3</minimumPriority>
        <!--  Exclude mock classes     --> 
        <excludes>
        <exclude>**/Mock.*</exclude> 
        <exclude>**/Dummy.*</exclude> 
        <exclude>**/*Mock.java</exclude> 
        <exclude>**/*Dummy.java</exclude> 
        </excludes>
        <includeTests>true</includeTests> 
        <targetJdk>1.5</targetJdk>
        <rulesets>
            <ruleset>pmd_ruleset.xml</ruleset>  
        </rulesets>
    </configuration>
</plugin>
0 голосов
/ 20 июля 2009

Вам не нужно загружать плагины вручную. Я не уверен на 100%, но если вы хотите использовать, например, плагин checkstyle, вам нужно запустить maven с командной строкой формы параметра checkstyle

что-то вроде:

mvn checkstyle:checkstyle

или

mvn checkstyle:check

edit1: Но вы также можете поместить файлы jar в локальный репозиторий m2 с определенной структурой папок для доступа к ним.

edit2: вы можете поместить все свои плагины в свой собственный репозиторий, а затем вам нужно указать maven (используя pom), какие репозитории вы хотите использовать. Каждый плагин должен быть описан в pom.

...