1
resposta

[Dúvida] Configurando pom.xml plugin maven tomcat7

Tentando buildar um servlet simples web, para exercitar o processo de build com maven, estou usando o plugin do tomcat7 para isso, porém ele pede para configurar as seguintes tags que eu não sei o que colocar.

 <warRunDependencies>

    <warRunDependency>
        <dependency>
                <groupId>a groupId</groupId>
                <artifactId>and artifactId</artifactId>
                <version>version</version>
                <type>war</type>
        </dependency>
        <contextPath>/</contextPath>
    </warRunDependency>

  </warRunDependencies>

Essas dependencias são referentes ao o meu artefato? Sao referentes as dependencias que meu artefato usa? As documentações muitas vezes são pobres nesse detalhes.

Segue todas as configs no pom.xml que o tomcat recomenda para este processo.

<project>
  ...
  <packaging>war</packaging>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.3-SNAPSHOT</version>
        <executions>
          <execution>
            <id>tomcat-run</id>
            <goals>
              <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <!-- optional only if you want to use a preconfigured server.xml file -->
              <!--
              <serverXml>src/main/tomcatconf/server.xml</serverXml>
              -->
              <warRunDependencies>
                <warRunDependency>
                  <dependency>
                    <groupId>a groupId</groupId>
                    <artifactId>and artifactId</artifactId>
                    <version>version</version>
                    <type>war</type>
                  </dependency>
                  <contextPath>/</contextPath>
                </warRunDependency>
              </warRunDependencies>
              <!-- naming is disabled by default so use true to enable it -->
              <enableNaming>true</enableNaming>
              <!-- extra dependencies to add jdbc driver, mail jars, etc. -->
              <extraDependencies>
                <extraDependency>
                  <groupId>org.apache.derby</groupId>
                  <artifactId>derby</artifactId>
                  <version>10.1.3.1</version>
                </extraDependency>
                <extraDependency>
                  <groupId>javax.mail</groupId>
                  <artifactId>mail</artifactId>
                  <version>1.4</version>
                </extraDependency>
              </extraDependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>
1 resposta

Olá Lucas! Tudo bem?

As tags que você precisa configurar são referentes às dependências que o seu artefato usa. O que o plugin está pedindo é que você especifique quais dependências são necessárias para rodar a sua aplicação web.

No exemplo que você postou, a dependência especificada é um outro arquivo WAR que a sua aplicação precisa. No caso, o plugin do tomcat7 está pedindo que você especifique a groupId, artifactId, version e type desse outro arquivo WAR, além do contextPath que ele deve ter.

Se a sua aplicação não precisa de outras dependências além das que já estão especificadas no seu pom.xml, você pode simplesmente remover essa parte do plugin. Caso contrário, você precisa especificar as dependências que a sua aplicação precisa para rodar corretamente.

Espero ter ajudado e bons estudos!