3
respostas

Última versão Spring boot tem problemas para importar a lib enviadorEmail

pom do listaVip

<?xml version="1.0" encoding="UTF-8"?>
<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>br.com.alura.listavip</groupId>
    <artifactId>listavip</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>listavip</name>
    <description>Demo project for Spring Boot</description>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

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

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

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

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

        <dependency>
            <groupId>br.com.alura.enviadorEmail</groupId>
            <artifactId>enviadorEmail</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

pom do enviadorEmail

<?xml version="1.0" encoding="UTF-8"?>
<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>br.com.alura.enviadorEmail</groupId>
    <artifactId>enviadorEmail</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>enviadorEmail</name>
    <description>Demo project for Spring Boot</description>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>
  • Rodei o build do enviadorEmail com sucesso, a lib consta no diretório do maven(.m2) com o jar.
  • O Maven do listaVip consegue importar a lib do enviadorEmail.
  • A IDE autocompleta o EmailService porém ao completar ela fala que não consegue resolver o package.
  • Se no Intelij(Maven Projects) do listaVip eu importar o pom do enviadorEmail funciona.
  • Spring 1.5.9.RELEASE, Java 1.8.

Sinceramente não sei mais o que tentar...

EDIT 30/12/2017 - O problema se aplica tanto a iNTELIJ, Eclipse e rodando no maven na mão, aparentemente por causa do SpringBootApplication da lib(enviador email) e plugin do maven.

3 respostas

Aparentemente o problema tem relação da lib enviadorEmail utilizar tem a classe de boot com @SpringBootApplication junto com o pom do mesmo ter a tag de build, faz com que não compile e o intelij n aceite também. O problema começa na versão 1.4 do springboot, anterior a isso não acontece.

Oi Vinicius, valeu por detalhar tão bem... Eu realmente não vi ainda qual deve ser o problema... Rola você testar no eclipse só para a gente verificar?

Olá Alberto, creio que o problema é geral(independente de iDE), vou mudar o titulo da dúvida. Testei no eclipse e no maven via terminal, se você inclui a dependência da forma que citei inicialmente, ele consegue baixar. Se você tenta usar(import e instanciar) a lib já da erro de compilação. ` $ mvn clean install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building listavip 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ listavip --- [INFO] Deleting /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/target [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ listavip --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 2 resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ listavip --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 4 source files to /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/target/classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[11,34] package br.com.alura.enviadorEmail does not exist [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[44,9] cannot find symbol symbol: class EmailService location: class br.com.alura.listavip.ConvidadoController [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[44,41] cannot find symbol symbol: class EmailService location: class br.com.alura.listavip.ConvidadoController [INFO] 3 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.969 s [INFO] Finished at: 2017-12-30T23:48:00-02:00 [INFO] Final Memory: 30M/270M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project listavip: Compilation failure: Compilation failure: [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[11,34] package br.com.alura.enviadorEmail does not exist [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[44,9] cannot find symbol [ERROR] symbol: class EmailService [ERROR] location: class br.com.alura.listavip.ConvidadoController [ERROR] /Users/viniciusgava/Downloads/listavip e enviadorEmail/listavip/src/main/java/br/com/alura/listavip/ConvidadoController.java:[44,41] cannot find symbol [ERROR] symbol: class EmailService [ERROR] location: class br.com.alura.listavip.ConvidadoController [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException E a lib do enviadorEmail está lá no .m2...

Basicamente a solução que comentei anteriormente funciona. Na últimas mudanças eu simplesmente deletei aquela classe e removi o plugin do build(da lib). Em relação ao boot aplicação spring não faz sentido em uma lib(creio eu), talvez nas versões mais recentes o spring começou a ter problemas com isso ou com o outro pom usando o build? Maven, Java e Spring é bem novo pra mim ainda, venho de outra linguagem não sei dizer o porque...