Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Вывод отчетов и изображений Spock/Geb в Allure

bdd
geb
infrastructure
spock
reporting
maven
allure
Теги: #<Tag:0x00007fedc461fcb0> #<Tag:0x00007fedc461fad0> #<Tag:0x00007fedc461f918> #<Tag:0x00007fedc461f5f8> #<Tag:0x00007fedc461f468> #<Tag:0x00007fedc461f238> #<Tag:0x00007fedc461f0d0>

(Tatyana Durova) #1

Не получается настроить интеграция Jenkins+Allure+Maven+Spock+Geb

Отчеты Allure создаются, но в них не отображаются BDD шаги. Не понятно, где надо прописать путь к отчетам Geb json, если надо.

В ходе выполнения теста у меня получаются папки в target/geb-reports/tests/ со скриншотами для упавших тестов.

. Но в Allure эти изображения не попадают.

Также формируется один json файл с шагами Spock,

Внутри такой:

loadLogFile([{
    "package": "tests.country",
    "name": "CountryCreationPositiveSpec",
    "start": 1533312916839,
    "output": [
        "Configuration from external file \/etc\/solactive-web-test\/webtestconfig.groovy\n"
    ],
    "errorOutput": [
        "S",
        "t",
        "a",
        "r",
        "t",
        "i",
        "n",
        "g",
        " ",
        "C",
        "h",
        "r",
        "o",
        "m",
        "e",
        "D",
        "r",
        "i",
        "v",
        "e",
        "r",
        " ",
        "2",
        ".",
        "4",
        "1",
        ".",
        "5",
        "7",
        "8",
        "7",
        "0",
        "0",
        " ",
        "(",
        "2",
        "f",
        "1",
        "e",
        "d",
        "5",
        "f",
        "9",
        "3",
        "4",
        "3",
        "c",
        "1",
        "3",
        "f",
        "7",
        "3",
        "1",
        "4",
        "4",
        "5",
        "3",
        "8",
        "f",
        "1",
        "5",
        "c",
        "0",
        "0",
        "b",
        "3",
        "7",
        "0",
        "e",
        "d",
        "a",
        "6",
        "7",
        "0",
        "6",
        ")",
        " ",
        "o",
        "n",
        " ",
        "p",
        "o",
        "r",
        "t",
        " ",
        "4",
        "9",
        "6",
        "7",
        "\n",
        "O",
        "n",
        "l",
        "y",
        " ",
        "l",
        "o",
        "c",
        "a",
        "l",
        " ",
        "c",
        "o",
        "n",
        "n",
        "e",
        "c",
        "t",
        "i",
        "o",
        "n",
        "s",
        " ",
        "a",
        "r",
        "e",
        " ",
        "a",
        "l",
        "l",
        "o",
        "w",
        "e",
        "d",
        ".",
        "\n",
        "Aug 03, 2018 6:15:23 PM org.openqa.selenium.remote.ProtocolHandshake createSession\nINFO: Detected dialect: OSS\n"
    ],
    "features": [
        {
            "name": "Create new country",
            "start": 1533312926877,
            "narrative": "Given Nothing\nWhen Create new country\nThen Country added in database",
            "errorOutput": [
                "log4j:WARN No appenders could be found for logger (root).\n",
                "log4j:WARN Please initialize the log4j system properly.\n"
            ],
            "end": 1533312930819,
            "result": "passed",
            "attachments": [
                
            ]
        },
        {
            "name": "Internationally Failing for Jenkins test, Create new country",
            "start": 1533312930825,
            "narrative": "Given Nothing\nWhen Create new country\nThen Country added in database",
            "exceptions": [
                "java.lang.NullPointerException: Cannot invoke method getLocation() on null object\n\tat utils.SeleniumUtils.scrollWithOffset(SeleniumUtils.groovy:79)\n\tat utils.SeleniumUtils.moveToElement(SeleniumUtils.groovy:72)\n\tat utils.SeleniumUtils.moveTo(SeleniumUtils.groovy:68)\n\tat utils.SeleniumUtils.moveToAndClick(SeleniumUtils.groovy:44)\n\tat pages.country.CountryOverviewPage.openCountryForm(CountryOverviewPage.groovy:15)\n\tat tests.country.CountryCreationPositiveSpec.Internationally Failing for Jenkins test, Create new country(CountryCreationPositiveSpec.groovy:37)\n"
            ],
            "output": [
                "[[ATTACHMENT|\/home\/tester\/.jenkins\/workspace\/10TestautomationSingleTest\/.\/target\/geb-reports\/tests\/country\/CountryCreationPositiveSpec\/002-001-Internationally Failing for Jenkins test_ Create new country-failure.html]]\n",
                "[[ATTACHMENT|\/home\/tester\/.jenkins\/workspace\/10TestautomationSingleTest\/.\/target\/geb-reports\/tests\/country\/CountryCreationPositiveSpec\/002-001-Internationally Failing for Jenkins test_ Create new country-failure.png]]\n"
            ],
            "end": 1533312931869,
            "result": "failed",
            "attachments": [
                
            ]
        },
        {
            "name": "Internationally ignoring test to test Jenkins, Create new country",
            "start": 1533312931869,
            "end": 1533312931869,
            "result": "skipped",
            "narrative": "Given Nothing\nWhen Create new country\nThen Country added in database"
        }
    ],
    "end": 1533312934202,
    "result": "failed",
    "attachments": [
        
    ]
}])

loadLogFile([{
    "package": "tests.country",
    "name": "CountryFormValidationSpec",
    "start": 1533312934231,
    "features": [
        {
            "name": "Country form field validation test",
            "start": 1533312937844,
            "narrative": "When Create new country with no field is filled\nThen Name, IsoCode2, IsoCode3 - must not be Empty, Currency - must be a known currency\nWhen only name filled\nThen IsoCode2, IsoCode3 - must not be Empty error, Currency - must be a known currency error\nWhen save an existing name\nThen The country already exists error\nWhen save an IsoCode2\nThen The Iso2Code already exists error\nWhen save an IsoCode2\nThen The Iso2Code already exists error\nWhen IsoCode2 and IsoCode3 too short or too long\nThen IsoCode2, IsoCode3 - Value length is not correct error\nWhen Currency with whitespace, e.g. 'RUB, US'\nThen Currency - No whitespaces allowed error\nWhen I press question mark\nThen Popup with help text is open\nWhen I search for existing country by full match 'United States'\nThen I get all countries with such words in name, with exact amount of spaces\nWhen I search for existing country by partial match, e.g 'uni'\nThen I get all countries with such chars in name",
            "end": 1533312948673,
            "result": "passed",
            "attachments": [
                
            ]
        }
    ],
    "end": 1533312950620,
    "result": "passed",
    "attachments": [
        
    ]
}])

loadLogFile([{
    "package": "tests",
    "name": "TaxesCreationPositiveSpec",
    "start": 1533312950644,
    "features": [
        {
            "name": "Create new tax entry",
            "start": 1533312954148,
            "narrative": "Given Nothing\nWhen Create new tax entry\nThen Tax entry added in database",
            "end": 1533312956640,
            "result": "passed",
            "attachments": [
                
            ]
        }
    ],
    "end": 1533312958668,
    "result": "passed",
    "attachments": [
        
    ]
}])

loadLogFile([{
    "package": "tests",
    "name": "TaxesCreationIntentionallyFailingSpec",
    "start": 1533312958686,
    "features": [
        {
            "name": "Create new tax entry",
            "start": 1533312962531,
            "narrative": "Given Nothing\nWhen Create new tax entry\nThen Tax entry added in database",
            "exceptions": [
                "Condition not satisfied:\n\ntaxes.size() == 1\n|     |      |\n[]    0      false\n\n\tat org.spockframework.runtime.SpockRuntime.verifyCondition(SpockRuntime.java:38)\n\tat tests.TaxesCreationIntentionallyFailingSpec.assertDatabaseState(TaxesCreationIntentionallyFailingSpec.groovy:29)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)\n\tat groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)\n\tat groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)\n\tat groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)\n\tat org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:925)\n\tat org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)\n\tat org.spockframework.runtime.GroovyRuntimeUtil.invokeMethod(GroovyRuntimeUtil.java:174)\n\tat org.spockframework.runtime.SpockRuntime.verifyMethodCondition(SpockRuntime.java:83)\n\tat tests.TaxesCreationIntentionallyFailingSpec.$spock_feature_3_0(TaxesCreationIntentionallyFailingSpec.groovy:23)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:188)\n\tat org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:84)\n\tat org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:481)\n\tat org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:464)\n\tat org.spockframework.runtime.BaseSpecRunner.runFeatureMethod(BaseSpecRunner.java:406)\n\tat org.spockframework.runtime.BaseSpecRunner.doRunIteration(BaseSpecRunner.java:324)\n\tat org.spockframework.runtime.BaseSpecRunner$6.invoke(BaseSpecRunner.java:309)\n\tat org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:88)\n\tat org.spockframework.runtime.extension.IMethodInvocation$proceed.call(Unknown Source)\n\tat geb.spock.OnFailureReporter.intercept(OnFailureReporter.groovy:31)\n\tat org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:87)\n\tat org.spockframework.runtime.extension.builtin.AbstractRuleInterceptor$1.evaluate(AbstractRuleInterceptor.java:37)\n\tat org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)\n\tat org.spockframework.runtime.extension.builtin.TestRuleInterceptor.intercept(TestRuleInterceptor.java:38)\n\tat org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:87)\n\tat org.spockframework.runtime.extension.builtin.AbstractRuleInterceptor$1.evaluate(AbstractRuleInterceptor.java:37)\n\tat org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:53)\n\tat org.spockframework.runtime.extension.builtin.MethodRuleInterceptor.intercept(MethodRuleInterceptor.java:40)\n\tat org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:87)\n\tat org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:472)\n\tat org.spockframework.runtime.BaseSpecRunner.runIteration(BaseSpecRunner.java:288)\n\tat org.spockframework.runtime.BaseSpecRunner.initializeAndRunIteration(BaseSpecRunner.java:278)\n\tat org.spockframework.runtime.BaseSpecRunner.runSimpleFeature(BaseSpecRunner.java:269)\n\tat org.spockframework.runtime.BaseSpecRunner.doRunFeature(BaseSpecRunner.java:263)\n\tat org.spockframework.runtime.BaseSpecRunner$5.invoke(BaseSpecRunner.java:246)\n\tat org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:481)\n\tat org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:464)\n\tat org.spockframework.runtime.BaseSpecRunner.runFeature(BaseSpecRunner.java:238)\n\tat org.spockframework.runtime.BaseSpecRunner.runFeatures(BaseSpecRunner.java:188)\n\tat org.spockframework.runtime.BaseSpecRunner.doRunSpec(BaseSpecRunner.java:98)\n\tat org.spockframework.runtime.BaseSpecRunner$1.invoke(BaseSpecRunner.java:84)\n\tat org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:481)\n\tat org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:464)\n\tat org.spockframework.runtime.BaseSpecRunner.runSpec(BaseSpecRunner.java:76)\n\tat org.spockframework.runtime.BaseSpecRunner.run(BaseSpecRunner.java:67)\n\tat org.spockframework.runtime.Sputnik.run(Sputnik.java:63)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)\n\tat org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)\n\tat org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:379)\n\tat org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:340)\n\tat org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)\n\tat org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:413)\n"
            ],
            "output": [
                "[[ATTACHMENT|\/home\/tester\/.jenkins\/workspace\/10TestautomationSingleTest\/.\/target\/geb-reports\/tests\/TaxesCreationIntentionallyFailingSpec\/001-001-Create new tax entry-failure.html]]\n",
                "[[ATTACHMENT|\/home\/tester\/.jenkins\/workspace\/10TestautomationSingleTest\/.\/target\/geb-reports\/tests\/TaxesCreationIntentionallyFailingSpec\/001-001-Create new tax entry-failure.png]]\n"
            ],
            "end": 1533312964443,
            "result": "failed",
            "attachments": [
                
            ]
        }
    ],
    "end": 1533312966411,
    "result": "failed",
    "attachments": [
        
    ]
}])

Pom.xml

<project 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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <version>2.6</version>
  </parent>

  <url>https://wiki.jenkins-ci.org/display/JENKINS/TestRail+Plugin</url>

  <groupId>org.jenkinsci.plugins</groupId>
  <artifactId>testrail</artifactId>
  <name>TestRail Plugin</name>
  <version>1.0.8-SNAPSHOT</version>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
      <comments>A business-friendly OSS license</comments>
    </license>
  </licenses>
  <packaging>hpi</packaging>

  <scm>
    <connection>scm:git:ssh://github.com/jenkinsci/testrail-plugin.git</connection>
    <developerConnection>scm:git:ssh://git@github.com/jenkinsci/testrail-plugin.git</developerConnection>
    <url>https://github.com/jenkinsci/testrail-plugin</url>
    <tag>HEAD</tag>
  </scm>

  <distributionManagement>
    <repository>
      <uniqueVersion>false</uniqueVersion>
      <id>maven.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/releases/</url>
    </repository>
    <snapshotRepository>
      <id>maven.jenkins-ci.org</id>
      <url>https://repo.jenkins-ci.org/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <developers>
    <developer>
      <id>xirsoi</id>
      <name>Adam Chevalier</name>
      <email>chevalierAdam2@gmail.com</email>
    </developer>
  </developers>

  <!-- get every artifact through repo.jenkins-ci.org, which proxies all the artifacts that we need -->
  <repositories>
    <repository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>taglist-maven-plugin</artifactId>
      <version>${taglist-maven-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>javancss-maven-plugin</artifactId>
      <version>${javancss-maven-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-plugin-plugin</artifactId>
      <version>${maven-plugin-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.5.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>${maven-checkstyle-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>${maven-javadoc-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jxr-plugin</artifactId>
      <version>${maven-jxr-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-pmd-plugin</artifactId>
      <version>${maven-pmd-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.5.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <version>${maven-project-info-reports-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-report-plugin</artifactId>
      <version>${maven-surefire-report-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.5.4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>jdepend-maven-plugin</artifactId>
      <version>${jdepend-maven-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-plugin-api</artifactId>
      <version>3.5.4</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <version>${findbugs-maven-plugin.version}</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>${cobertura-maven-plugin.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.3.2</version>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20140107</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.woodstox</groupId>
      <artifactId>woodstox-core-asl</artifactId>
      <version>4.1.4</version>
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <version>1.8.5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jacoco</groupId>
      <artifactId>jacoco-maven-plugin</artifactId>
      <version>0.7.0.201403182114</version>
    </dependency>
    <dependency>
      <groupId>org.jenkins-ci.plugins</groupId>
      <artifactId>structs</artifactId>
      <version>1.10</version>
    </dependency>

  </dependencies>

  <pluginRepositories>
    <pluginRepository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </pluginRepository>
  </pluginRepositories>

  <properties>
    <jenkins.version>1.651.3</jenkins.version>
    <!-- define all plugin versions -->
    <maven.version>3.0.2</maven.version>
    <maven-antrun-plugin.version>1.6</maven-antrun-plugin.version>
    <maven-assembly-plugin.version>2.2</maven-assembly-plugin.version>
    <maven-changelog-plugin.version>2.2</maven-changelog-plugin.version>
    <maven-checkstyle-plugin.version>2.6</maven-checkstyle-plugin.version>
    <maven-clean-plugin.version>2.4.1</maven-clean-plugin.version>
    <maven-compiler-plugin.version>2.3.2</maven-compiler-plugin.version>
    <maven-dependency-plugin.version>2.1</maven-dependency-plugin.version>
    <maven-deploy-plugin.version>2.5</maven-deploy-plugin.version>
    <maven-doap-plugin.version>1.0</maven-doap-plugin.version>
    <maven-eclipse-plugin.version>2.8</maven-eclipse-plugin.version>
    <maven-enforcer-plugin.version>1.0</maven-enforcer-plugin.version>
    <maven-help-plugin.version>2.1.1</maven-help-plugin.version>
    <maven-install-plugin.version>2.3.1</maven-install-plugin.version>
    <maven-javadoc-plugin.version>2.7</maven-javadoc-plugin.version>
    <maven-jar-plugin.version>2.3.1</maven-jar-plugin.version>
    <maven-jetty-plugin.version>6.1.26</maven-jetty-plugin.version>
    <maven-jxr-plugin.version>2.2</maven-jxr-plugin.version>
    <maven-pmd-plugin.version>2.5</maven-pmd-plugin.version>
    <maven-project-info-reports-plugin.version>2.3.1</maven-project-info-reports-plugin.version>
    <maven-plugin-plugin.version>2.4.3</maven-plugin-plugin.version>
    <maven-reactor-plugin.version>1.0</maven-reactor-plugin.version>
    <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
    <maven-remote-resources-plugin.version>1.1</maven-remote-resources-plugin.version>
    <maven-resources-plugin.version>2.4.3</maven-resources-plugin.version>
    <maven-site-plugin.version>2.1.1</maven-site-plugin.version>
    <maven-source-plugin.version>2.1.2</maven-source-plugin.version>
    <maven-surefire-plugin.version>2.7.2</maven-surefire-plugin.version>
    <maven-surefire-report-plugin.version>2.7.2</maven-surefire-report-plugin.version>
    <maven-war-plugin.version>2.1.1</maven-war-plugin.version>
    <apt-maven-plugin.version>1.0-alpha-4</apt-maven-plugin.version>
    <axistools-maven-plugin.version>1.4</axistools-maven-plugin.version>
    <buildnumber-maven-plugin.version>1.0-beta-4</buildnumber-maven-plugin.version>
    <build-helper-maven-plugin.version>1.5</build-helper-maven-plugin.version>
    <cargo-maven2-plugin.version>1.0.5</cargo-maven2-plugin.version>
    <cobertura-maven-plugin.version>2.5.1</cobertura-maven-plugin.version>
    <exec-maven-plugin.version>1.2</exec-maven-plugin.version>
    <findbugs-maven-plugin.version>2.3.1</findbugs-maven-plugin.version>
    <gwt-maven-plugin.version>2.1.0-1</gwt-maven-plugin.version>
    <javancss-maven-plugin.version>2.1</javancss-maven-plugin.version>
    <jdepend-maven-plugin.version>2.0-beta-2</jdepend-maven-plugin.version>
    <openjpa-maven-plugin.version>1.2</openjpa-maven-plugin.version>
    <taglist-maven-plugin.version>2.4</taglist-maven-plugin.version>
    <versions-maven-plugin.version>1.2</versions-maven-plugin.version>
    <xml-maven-plugin.version>1.0-beta-3</xml-maven-plugin.version>
    <jacoco.version>0.7.0.201403182114</jacoco.version>
  </properties>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-provider-gitexe</artifactId>
        <version>1.9.1</version>
      </extension>
      <extension>
        <groupId>org.apache.maven.scm</groupId>
        <artifactId>maven-scm-manager-plexus</artifactId>
        <version>1.3</version>
      </extension>
      <extension>
        <groupId>org.kathrynhuxtable.maven.wagon</groupId>
        <artifactId>wagon-gitsite</artifactId>
        <version>0.3.1</version>
      </extension>
    </extensions>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>InjectedTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <version>${maven-site-plugin.version}</version>
        <executions>
          <execution>
            <id>attach-descriptor</id>
            <goals>
              <goal>attach-descriptor</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-prepare-agent-integration</id>
            <goals>
              <goal>prepare-agent-integration</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report-integration</id>
            <goals>
              <goal>report-integration</goal>
            </goals>
          </execution>
          <execution>
            <id>default-check</id>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <rules>
                <rule>
                  <element>BUNDLE</element>
                  <limits>
                    <limit>
                      <counter>COMPLEXITY</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.60</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${maven-checkstyle-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
        <configuration>
          <additionalJOption>-Xdoclint:none</additionalJOption>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>${maven-jxr-plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>${maven-pmd-plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>${maven-plugin-plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${maven-project-info-reports-plugin.version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>cim</report>
              <report>distribution-management</report>
              <report>index</report>
              <report>issue-tracking</report>
              <report>license</report>
              <report>mailing-list</report>
              <report>project-team</report>
              <report>scm</report>
              <report>summary</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>${maven-surefire-report-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>${cobertura-maven-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${findbugs-maven-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>javancss-maven-plugin</artifactId>
        <version>${javancss-maven-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <version>${jdepend-maven-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>${taglist-maven-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
      </plugin>
    </plugins>
  </reporting>
</project>