Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Gerando relatório com Maven em múltiplos repositórios

Boa tarde, pessoal.

Estou adaptando o que vi no curso de Maven para meu repositório GitLab. Manualmente, através do cmd, estou conseguindo gerar a estrutura de relatórios do PMD entrando em cada diretório de alguns projetos diferentes do meu repositório.

Acontece que, assim que criado o Job no Jenkins, apontando o repositório (a estrutura com todas pastas de projetos), ele tem criado toda estrutura com o relatório do pmd e atualizando a cada build automaticamente, como esperado mas se aponto para a pasta de algum projeto específico, ele falha ou não atualiza automaticamente os relatórios (já que gerei os mesmos por linha de comando). Lembrando que, quando faço isso manualmente (dentro de cada projeto) funciona tudo normal.

Este é meu arquivo POM.XML atualmente:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Selenium</groupId>
    <artifactId>Selenium</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.8.1</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.8.1</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.pmd</groupId>
            <artifactId>pmd</artifactId>
            <version>5.8.1</version>
            <type>pom</type>
        </dependency>

    </dependencies>

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>2.7.1</version>
                <configuration>
                    <failOnViolation>true</failOnViolation>
                    <printFailingErrors>true</printFailingErrors>
                    <verbose>true</verbose>
                    <sourceEncoding>utf-8</sourceEncoding>
                    <skipEmptyReport>false</skipEmptyReport>
                    <includeTests>true</includeTests>
                    <aggregate>true</aggregate>
                    <minimumTokens>100</minimumTokens>
                    <linkXRef>false</linkXRef>
                    <targetJdk>1.6</targetJdk>
                    <rulesets>
                        <ruleset>/rulesets/basic.xml</ruleset>
                    </rulesets>
                    <failOnViolation>true</failOnViolation>
                </configuration>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>pmd</goal>
                            <goal>check</goal>
                            <goal>cpd</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
            <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>
</project>

Estou estranhando o fato da estrutura do meu repositório estar nesta maneira:

  • Repositório

    • Projeto1

      • target
    • Projeto2

      • target
    • Projeto3

      • ...
  • target

    • ... (estrutura dos relatórios)
  • pom.xml

  • build.xml

  • ruleset.xml

O Maven funciona analisando apenas um projeto por job?

Obrigada.

2 respostas
solução!

Oi Graziele, tudo bem ?

Imagino que ele faça projeto por projeto mesmo, pois ele deveria analisar o conteudo do target, que estaria em cada projeto.

Acho que vai ter que fazer um job para cada projeto.

Okay! Irei manter a estrutura de um job para cada projeto. Caso eu encontre algum modo melhor, atualizo o post.

Obrigada.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software