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

Erro ao compilar mvn no projeto principal

Bom dia pessoal,

Fiz um serviço de envio de e-mail igual ao do curso, para ser utilizado na minha API.

No eclipse, não aparece erro de compilação. Porém, quando eu subo a API da esse erro:

ClassNotFoundException: org.springframework.mail.javamail.JavaMailSenderImpl

Quando eu rodo "mvn clean install" na API, da esse erro:

[ERROR] /D:/repositories/java/meudominio-api/src/main/java/br/com/meudominio/service/MeuDominioService.java:[11,29] package br.com.meudominio.sendmail does not exist
[ERROR] /D:/repositories/java/meudominio-api/src/main/java/br/com/meudominio/service/MeuDominioService.java:[20,17] cannot find symbol
[ERROR] symbol:   class EmailService
[ERROR] location: class br.com.meudominio.service.MeuDominioService
[ERROR] /D:/repositories/java/meudominio-api/src/main/java/br/com/meudominio/handler/ResourceExceptionHandler.java:[12,39] package com.mysql.jd
bc.exceptions.jdbc4 does not exist
[ERROR] /D:/repositories/java/meudominio-api/src/main/java/br/com/meudominio/service/MeuDominioService.java:[35,29] cannot find symbol
[ERROR] symbol:   class EmailService
[ERROR] location: class br.com.meudominio.service.MeuDominioService

Segue meus pom's:

POM do serviço de e-mail:

<groupId>br.com.meudominio.sendmail</groupId>
<artifactId>meudominio-sendmail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>meudominio-sendmail</name>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-email</artifactId>
        <version>1.4</version>
    </dependency>
</dependencies>

POM da API

<groupId>br.com.meudominio</groupId>
<artifactId>meudominio-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>meudominio-api</name>

<dependencies>
    <!-- Demais ocultadas -->
    <dependency>
        <groupId>br.com.meudominio.sendmail</groupId>
        <artifactId>meudominio-sendmail</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <!-- Demais ocultadas -->
</dependencies>

Já exclui todo conteúdo do repository porém o erro continua.

Olhando no stackoverflow, vi algo de spring-context-support, mas como não vi nada no curso, queria ver primeiro aqui.

Obrigado.

6 respostas

Opa, você chegou a dar install no projeto do email? você precisa rodar esse para que o projeto do email seja adicionado no seu repositório local.

Sim, inclusive está no meu repository:

.m2\repository\br\com\meudominio\sendmail\meudominio-sendmail

Dentro da pasta tem:

maven-metadata-local
0.0.1-SNAPSHOT

A parte do "ClassNotFoundException: org.springframework.mail.javamail.JavaMailSenderImpl" eu consegui arrumar. No meu application.yml estava com umas configs de e-mail, pois eu estava utilizando spring-boot-starter-mail.

Agora o spring sobe normalmente, porém, ao compilar por fora (mvn clean install), continua o mesmo problema.

Se alguém descobrir, também estou na dúvida.

solução!

Tenta usar essa configuração de plugin no projeto sendmail:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <executions>
            <execution>
                <goals>
                    <goal>repackage</goal>
                </goals>
                <configuration>
                    <classifier>exec</classifier>
                </configuration>
            </execution>
        </executions>
    </plugin>

Achei esta referência no stackoverflow dizendo que por padrão o plugin do Spring Boot para Maven não gera um jar executável. “cannot find symbol” error in maven

Valeu amigo, deu certo.