Ir ao conteúdo
  • Cadastre-se
Victor Gimenez

Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

Recommended Posts

Boa Tarde,

Sou novo nessa parte de frameworks java, tenho uma noção já de OO e JDBC. Comecei a estudar ontem os frameworks Hibernate com JPA + Maven através de alguns exemplos no youtube só que em inglês pelas videoaulas estarem completas e enquanto escrevia fui traduzindo as classes, métodos, e atributos para o português para facilitar o entendimento e o problema é que ele utilizava a IDE Eclipse e o banco de dados H2 enquanto eu estou utilizando Netbeans e MySQL(o qual já configurei o repositório, dialeto e os dados da URL dele). Ele está retornando esse erro na saída:

cd C:\Users\Vickz\Documents\NetBeansProjects\hibernate-jpa-teste; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_101" cmd /c "\"\"C:\\Program Files\\NetBeans 8.1\\java\\maven\\bin\\mvn.bat\" -Dexec.args=\"-classpath %classpath src.main.java.TestarEmpregado\" -Dexec.executable=\"C:\\Program Files\\Java\\jdk1.8.0_101\\bin\\java.exe\" -Dexec.classpathScope=runtime -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.1\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 org.codehaus.mojo:exec-maven-plugin:1.2.1:exec\""
Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts.
Scanning for projects...
                                                                        
------------------------------------------------------------------------
Building hibernate-jpa-teste 1.0-SNAPSHOT
------------------------------------------------------------------------

--- exec-maven-plugin:1.2.1:exec (default-cli) @ hibernate-jpa-teste ---
out 07, 2016 1:43:54 PM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named Persistencia
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
	at src.main.java.TestarEmpregado.main(TestarEmpregado.java:32)
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 6.425s
Finished at: Fri Oct 07 13:43:54 BRT 2016
Final Memory: 5M/116M
------------------------------------------------------------------------
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2.1:exec (default-cli) on project hibernate-jpa-teste: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

 

Dai meu pom.xml ficou assim:

<?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.victor</groupId>
    <artifactId>hibernate-jpa-teste</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <!-- As dependências da ultima versão a ser instalada -->
    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.3.Final</version> 
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.192</version>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0.2</version> 
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <!-- or whatever version you use -->
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

 

persistência.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->

<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
    
    
    <!-- configuração nomeada c/ classes de entidade -->
    <persistence-unit name="Persistencia">
        
        <!-- Representação das classes logo abaixo que são os parâmetros para conexão com bd -->
        <class>br.victor.br.victor.hibernate.modelo.Empregado</class>
        
        <properties>    
            <property name="javax.persistence.jdbc.driver" value="jdbc.com.mysql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/teste" />
            <property name="javax.persistence.jdbc.user" value="root" />   
            <property name="javax.persistence.jdbc.password" value="" />  
            
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />  
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />   
        </properties>
    </persistence-unit>
</persistence>

 

classe Empregado

package src.main.java;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 *
 * @author Vickz
 */
@Entity
@Table(name = "empregado")
public class Empregado implements Serializable {
    
    private static final long serialVersionUID = 1L;
    @Column(name = "id_empregado")
    @Id
    private Long idEmpregado;
    @Column(name = "nome")
    private String nome;
    @Column(name = "sobrenome")
    private String sobrenome;
    @Column(name = "dataNascimento")
    private Date dataNascimento;

    public Empregado() {
    }

    public Empregado(Long idEmpregado, String nome, String sobrenome, Date dataNascimento) {
        this.idEmpregado = idEmpregado;
        this.nome = nome;
        this.sobrenome = sobrenome;
        this.dataNascimento = dataNascimento;
    }
  
  /*.... Getters & Setters ..... */

 

classe TestarEmpregado:

package src.main.java;


import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;

import src.main.java.Empregado;

/**
 *
 * @author Vickz
 */
public class TestarEmpregado {

    private static EntityManager man;
    private static EntityManagerFactory emf;
    //ou @PersistenceContext(unitName = "Persistencia")
    
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        /* Criar o gestor de persistência (EM) */
        emf = Persistence.createEntityManagerFactory("Persistencia");
        man = emf.createEntityManager();
        
        Empregado emp1 = new Empregado(3L, "Mariana", "Fonseca", new GregorianCalendar(1990, 5, 21).getTime());
        Empregado emp2 = new Empregado(5L, "João", "Ricardo", new GregorianCalendar(1986, 8, 11).getTime());
        
        man.getTransaction().begin();
        man.persist(emp1);
        man.persist(emp2);
        man.getTransaction().commit();
        
        
       /* List<Empregado> empregados = man.createQuery("FROM empregado").getResultList();
        System.out.println("Nesse banco de dados há: " + empregados.size() + " empregados. "); */
                       
    }
    
}

 

Minha estrutura de diretórios ficou assim (vide imagem), queria saber o que houve e como corrigir esse problema?? Muito Obrigado

 

estrutura.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

São dois pontos ... perceba a mensagem de erro:

Em 07/10/2016 às 14:12, Victor Gimenez disse:

out 07, 2016 1:43:54 PM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named Persistencia at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) at src.main.java.TestarEmpregado.main(TestarEmpregado.java:32)

 

Na sua estrutura você nomeou o arquivo de persistencia.xml, mas o java procura por persistence.xml ... além disso, você o colocou diretamente na pasta de resources, mas o caminho correto é dentro da pasta META-INF ... (Caso continue o erro, coloque dentro da pasta src/main/java/META-INF .. pois o classpath pode estar mal configurado pela IDE)

 

O outro detalhe é no POM.xml ... inclua dentro da TAG <build> o seguinte código:

<resources>
  <resource>
    <directory>src/main/resources/META-INF</directory>
    <includes>
      <include>persistence.xml</include>
    </includes>
    <filtering>true</filtering>
  </resource>
</resources>

Isso força o Maven a incluir recursos que não são classes dentro do pacote gerado ... isso serve para incluir qualquer arquivo, seja properties ou imagens ...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, estou com o mesmo problema, alguém conseguiu solucionar?

Ao executar minha classe principal apresenta a seguinte saída.

------------------------------------------------------------------------
Building AcademiaKf 1.0-SNAPSHOT
------------------------------------------------------------------------
--- exec-maven-plugin:1.2.1:exec (default-cli) @ AcademiaKf ---
mai 05, 2017 9:29:35 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
mai 05, 2017 9:29:35 AM org.hibernate.ejb.HibernatePersistence logDeprecation
WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
mai 05, 2017 9:29:35 AM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
mai 05, 2017 9:29:35 AM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
mai 05, 2017 9:29:35 AM org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve
INFO: HHH000318: Could not find any META-INF/persistence.xml file in the classpath
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named AcademiaKfPU
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at teste.NewMain.main(NewMain.java:24)
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.469s
Finished at: Fri May 05 09:29:35 BRT 2017
Final Memory: 6M/109M
------------------------------------------------------------------------

 

 

 

 

 

O arquivo pom.xml

 

<?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>com.alexandre</groupId>
    <artifactId>AcademiaKf</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>AcademiaKf</name>
    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.faces</artifactId>
            <version>2.1.17</version>
            <scope>compile</scope>
        </dependency>
        
        <!-- Primefaces -->
        <dependency>
                <groupId>org.primefaces</groupId>
                <artifactId>primefaces</artifactId>
                <version>6.0</version>
        </dependency>
        <!-- Hibernate core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.9.Final</version>
            <scope>compile</scope>
        </dependency>
        
        <!-- Implementação de Entity-Manager do JPA -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.1.Final</version>
            <scope>compile</scope>
        </dependency>
        
        <!-- Driver de conexão JDBC do PostgreSQL -->
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.1-901.jdbc3</version>
            <!--   <version>9.3-1102.jdbc3</version> -->
            <scope>compile</scope>
        </dependency>
        
        <!-- API do Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
             <scope>provided</scope>
        </dependency>
        
       
    </dependencies>
    
    <repositories>
        <repository>
                <id>prime-repo</id>
                <name>PrimeFaces Maven Repository</name>
                <url>http://repository.primefaces.org</url>
                <layout>default</layout>
        </repository>
        <repository>
            <id>unknown-jars-temp-repo</id>
            <name>A temporary repository created by NetBeans for libraries and jars it could not identify. Please replace the dependencies in this repository with correct ones and delete this repository.</name>
            <url>file:${project.basedir}/lib</url>
        </repository>
    </repositories>
    <build>
        <resources>
            <resource>
              <directory>src/main/resources/META-INF</directory>
              <includes>
                <include>persistence.xml</include>
              </includes>
              <filtering>true</filtering>
            </resource>
          </resources>
        
        <plugins>
          
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>       
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>7.0</version>
                                    <type>jar</type>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

 

 

Em 2016-10-10 às 10:15, psykotico disse:

São dois pontos ... perceba a mensagem de erro:

 

Na sua estrutura você nomeou o arquivo de persistencia.xml, mas o java procura por persistence.xml ... além disso, você o colocou diretamente na pasta de resources, mas o caminho correto é dentro da pasta META-INF ... (Caso continue o erro, coloque dentro da pasta src/main/java/META-INF .. pois o classpath pode estar mal configurado pela IDE)

 

O outro detalhe é no POM.xml ... inclua dentro da TAG <build> o seguinte código:


<resources>
  <resource>
    <directory>src/main/resources/META-INF</directory>
    <includes>
      <include>persistence.xml</include>
    </includes>
    <filtering>true</filtering>
  </resource>
</resources>

Isso força o Maven a incluir recursos que não são classes dentro do pacote gerado ... isso serve para incluir qualquer arquivo, seja properties ou imagens ...

 

Meu arquivo está nomeado como persistence.xml e eu inclui a TAG dentro do build, porém apresenta o mesmo erro, inclusive o INFO de Could not find any META-INF/persistence.xml

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×