The type com.querydsl.core.types.Predicate cannot be resolved. It is indirectly referenced from required .class files
<p>I have a Maven Spring-Hibernate-JPA-QueryDsl web application in Eclipse that is giving the error <code>The type com.querydsl.core.types.Predicate cannot be resolved</code> in a <code>CommonRepositoryImpl.java</code> class. The error marker appears at the package declaration of the class. Here is the java class in question: </p>

<pre><code>package com.kletus.silentHomeCemetery.frameworkextension;

import com.kletus.silentHomeCemetery.frameworkextension.InjectLogger;

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import com.mysema.query.jpa.JPQLQuery;

import org.apache.commons.lang3.StringUtils;
import org.hibernate.Filter;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.slf4j.Logger;
import org.springframework.data.jpa.repository.support.JpaEntityInformation;
import org.springframework.data.jpa.repository.support.QueryDslJpaRepository;
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.transaction.annotation.Transactional;

@SuppressWarnings("unchecked")
@NoRepositoryBean
@Transactional
public class CommonRepositoryImpl&lt;T, ID extends Serializable&gt; extends
    QueryDslJpaRepository&lt;T, ID&gt; implements CommonRepository&lt;T, ID&gt;,
    Serializable

{
    private static final long serialVersionUID = 1L;

@InjectLogger
private Logger logger;

private final JpaEntityInformation&lt;T, ID&gt; entityInformation;
private final EntityManager em;
//private final DefaultPersistenceProvider provider;

private Class&lt;?&gt; springDataRepositoryInterface;

public Class&lt;?&gt; getSpringDataRepositoryInterface() {
    return springDataRepositoryInterface;
}

public void setSpringDataRepositoryInterface(
        Class&lt;?&gt; springDataRepositoryInterface) {
    this.springDataRepositoryInterface = springDataRepositoryInterface;
}

/**
 * Creates a new {@link SimpleJpaRepository} to manage objects of the given
 * {@link JpaEntityInformation}.
 * 
 * @param entityInformation
 * @param entityManager
 */
public CommonRepositoryImpl(JpaEntityInformation&lt;T, ID&gt; entityInformation,
        EntityManager entityManager, Class&lt;?&gt; springDataRepositoryInterface) {
    //QueryDslJpaRepository(JpaEntityInformation&lt;T,ID&gt; entityInformation, javax.persistence.EntityManager entityManager);
    super(entityInformation, entityManager);
    this.entityInformation = entityInformation;
    this.em = entityManager;
    //this.provider = DefaultPersistenceProvider.fromEntityManager(entityManager);
    this.springDataRepositoryInterface = springDataRepositoryInterface;
}

/**
 * Creates a new {@link SimpleJpaRepository} to manage objects of the given
 * domain type.
 * 
 * @param domainClass
 * @param em
 */
//public QueryDslRepositoryImpl(Class&lt;T&gt; domainClass, EntityManager em) {
    //this(JpaEntityInformationSupport.getMetadata(domainClass, em));
//}

public &lt;S extends T&gt; S save(S entity) {
    if (this.entityInformation.isNew(entity)) {
        this.em.persist(entity);
        //flush();
        return entity;
    }else{
    entity = this.em.merge(entity);
    //flush();
    return entity;
    }
}

public T saveWithoutFlush(T entity) {
    return super.save(entity);
}

public List&lt;T&gt; saveWithoutFlush(Iterable&lt;? extends T&gt; entities) {
    List&lt;T&gt; result = new ArrayList&lt;T&gt;();
    if (entities == null) {
        return result;
    }

    for (T entity : entities) {
        result.add(saveWithoutFlush(entity));
    }
    return result;
}

public List queryNatively(String nativeQueryName,
        LinkedHashMap&lt;String, Class&lt;?&gt;&gt; inEntityClasses, Map&lt;String, Object&gt; inParams) {
    SQLQuery query = this.createHibernateNativeQuery(nativeQueryName,
            inParams);
    // add entities
    if (inEntityClasses != null) {
        for (Object key : inEntityClasses.keySet()) {
            String entityClassAlias = key.toString();
            Class&lt;?&gt; entityClass = (Class&lt;?&gt;) inEntityClasses.get(key);
            query.addEntity(entityClassAlias, entityClass);
        }
    }

    // add parameter
    if (inParams != null) {
        for (Object key : inParams.keySet()) {
            String queryParamName = key.toString();
            Object queryParamValue = inParams.get(key);
            query.setParameter(queryParamName, queryParamValue);
        }
    }
    return (query != null) ? query.list() : null;
}

public List&lt;?&gt; queryNativelyForDto(String nativeQueryName, 
        Map&lt;String, Object&gt; inParams, Class&lt;?&gt; dtoClass) {
    SQLQuery query = this.createHibernateNativeQuery(nativeQueryName,
            inParams);

    // add parameter
    if (inParams != null) {
        for (Object key : inParams.keySet()) {
            String queryParamName = key.toString();
            Object queryParamValue = inParams.get(key);
            query.setParameter(queryParamName, queryParamValue);
        }
    }

    return (query != null) ? query.setResultTransformer(
                new ResultTransformerEx(dtoClass)).list() : null;
}

private SQLQuery createHibernateNativeQuery(String nativeQueryName,
        Map inParams) {
    if (CommonRepository.class
            .isAssignableFrom(getSpringDataRepositoryInterface())) {

        Annotation nativeQueryAnn = getSpringDataRepositoryInterface()
                .getAnnotation(NativeQueries.class);
        if (nativeQueryAnn != null) {
            NativeQueries nativeQueries = (NativeQueries) nativeQueryAnn;
            NativeQuery[] queries = nativeQueries.queries();
            for (NativeQuery sqlquery : queries) {

                if (StringUtils.equals(nativeQueryName, sqlquery.name())) {
                    String sql = sqlquery.sql();

                    Session hiernateSess = (Session)em.getDelegate();
                                    //em.unwrap(Session.class); //Only in JPA 2
                    SQLQuery query = hiernateSess.createSQLQuery(sql);

                    // add parameter
                    if (inParams != null) {
                        for (Object key : inParams.keySet()) {
                            String queryParamName = key.toString();
                            Object queryParamValue = inParams.get(key);
                            query.setParameter(queryParamName,
                                    queryParamValue);
                        }
                    }

                    return query;
                }
            }
        }
    }
    return null;
}

public List&lt;T&gt; doQueryWithFilter(String filterName, String filterQueryName,
        Map&lt;String, Object&gt; inFilterParams, Map&lt;String, Object&gt; inQueryParams) {
    if (CommonRepository.class
            .isAssignableFrom(getSpringDataRepositoryInterface())) {
        Annotation entityFilterAnn = getSpringDataRepositoryInterface()
                .getAnnotation(EntityFilter.class);
        if (entityFilterAnn != null) {
            EntityFilter entityFilter = (EntityFilter) entityFilterAnn;
            FilterQuery[] filterQuerys = entityFilter.filterQueries();
            for (FilterQuery fQuery : filterQuerys) {
                if (StringUtils.equals(filterQueryName, fQuery.name())) {
                    String jpql = fQuery.jpql();
                    Session sess = (Session) em.getDelegate(); //em.unwrap
                    Filter filter = sess.enableFilter(filterName);

                    // set filter parameter
                    for (Object key : inFilterParams.keySet()) {
                        String filterParamName = key.toString();
                        Object filterParamValue = inFilterParams.get(key);
                        filter.setParameter(filterParamName,
                                filterParamValue);
                    }

                    // set query parameter
                    Query query = em.createQuery(jpql);
                    for (Object key : inQueryParams.keySet()) {
                        String queryParamName = key.toString();
                        Object queryParamValue = inQueryParams.get(key);
                        query.setParameter(queryParamName, queryParamValue);
                    }
                    return query.getResultList();
                }
            }
        }
    }
    return null;
}       
</code></pre>

<p>}</p>

<p>Here is my pom.xml file:</p>

<pre><code>    &lt;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/maven-    v4_0_0.xsd"&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;EclipseWorks&lt;/groupId&gt;
   &lt;artifactId&gt;SilentHomeCemetery&lt;/artifactId&gt;
  &lt;packaging&gt;war&lt;/packaging&gt;
  &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
  &lt;name&gt;SilentHomeCemetery Maven Webapp&lt;/name&gt;
  &lt;url&gt;http://maven.apache.org&lt;/url&gt;  
&lt;properties&gt;
    &lt;!-- Generic properties --&gt;
    &lt;java.version&gt;1.7&lt;/java.version&gt;
     &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
    &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;
    &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
    &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;

    &lt;!-- Spring --&gt;
    &lt;spring-framework.version&gt;3.1.2.RELEASE&lt;/spring-framework.version&gt;
    &lt;aspectj.version&gt;1.7.4&lt;/aspectj.version&gt;

    &lt;!-- Hibernate / JPA --&gt;
    &lt;hibernate.version&gt;4.1.7.Final&lt;/hibernate.version&gt;

    &lt;!-- JSF Version --&gt;
    &lt;jsf.version&gt;2.2.10&lt;/jsf.version&gt;

    &lt;!-- Logging --&gt;
    &lt;logback.version&gt;1.0.13&lt;/logback.version&gt;
    &lt;slf4j.version&gt;1.7.5&lt;/slf4j.version&gt;    
&lt;/properties&gt;

&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;junit&lt;/groupId&gt;
        &lt;artifactId&gt;junit&lt;/artifactId&gt;
        &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
        &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
        &lt;scope&gt;provided&lt;/scope&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;com.ibm.db2&lt;/groupId&gt;
        &lt;artifactId&gt;db2jcc4&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;com.ibm.db2&lt;/groupId&gt;
        &lt;artifactId&gt;db2jcc4_license_cu&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- Spring and Transactions --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
        &lt;artifactId&gt;spring-data-commons-core&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- @Inject --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;javax.inject&lt;/groupId&gt;
        &lt;artifactId&gt;javax.inject&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;!-- AspectJ --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
        &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;!-- Spring ORM support --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- Hibernate --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
        &lt;artifactId&gt;hibernate-entitymanager&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
        &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;commons-dbcp&lt;/groupId&gt;
        &lt;artifactId&gt;commons-dbcp&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- JSF Dependencies --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
        &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
        &lt;artifactId&gt;jsf-impl&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;!-- Logging with SLF4J &amp; LogBack --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
        &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
        &lt;scope&gt;compile&lt;/scope&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
        &lt;artifactId&gt;logback-classic&lt;/artifactId&gt;
        &lt;scope&gt;runtime&lt;/scope&gt;
    &lt;/dependency&gt;
    &lt;!-- http://repo1.maven.org/maven --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
        &lt;artifactId&gt;jstl&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
        &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
        &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;com.sun.el&lt;/groupId&gt;
        &lt;artifactId&gt;el-ri&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;javax&lt;/groupId&gt;
        &lt;artifactId&gt;javaee-web-api&lt;/artifactId&gt;
        &lt;scope&gt;provided&lt;/scope&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.primefaces&lt;/groupId&gt;
        &lt;artifactId&gt;primefaces&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
        &lt;artifactId&gt;spring-security-config&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
        &lt;artifactId&gt;spring-security-core&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
        &lt;artifactId&gt;spring-security-web&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-binding&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.webflow&lt;/groupId&gt;
        &lt;artifactId&gt;spring-faces&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-webflow&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework&lt;/groupId&gt;
        &lt;artifactId&gt;spring-aspects&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;javax&lt;/groupId&gt;
        &lt;artifactId&gt;javaee-api&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.eclipse.persistence&lt;/groupId&gt;
        &lt;artifactId&gt;eclipselink&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
        &lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
        &lt;artifactId&gt;spring-data-jpa&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-jpa&lt;/artifactId&gt;
        &lt;version&gt;3.4.3&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-core&lt;/artifactId&gt;
        &lt;version&gt;2.9.0.FIXED&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-jpa&lt;/artifactId&gt;
        &lt;version&gt;2.9.0.FIXED&lt;/version&gt;
    &lt;/dependency&gt;       
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-sql&lt;/artifactId&gt;
        &lt;version&gt;2.9.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
        &lt;artifactId&gt;commons-lang3&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.google.inject&lt;/groupId&gt;
        &lt;artifactId&gt;guice&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
        &lt;artifactId&gt;slf4j-log4j12&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.google.inject.extensions&lt;/groupId&gt;
        &lt;artifactId&gt;guice-servlet&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
        &lt;artifactId&gt;hibernate-validator&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-sql&lt;/artifactId&gt;
        &lt;version&gt;2.9.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-apt&lt;/artifactId&gt;
        &lt;version&gt;2.9.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-collections&lt;/artifactId&gt;
        &lt;version&gt;2.9.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
        &lt;artifactId&gt;querydsl-codegen&lt;/artifactId&gt;
        &lt;version&gt;2.9.0.FIXED&lt;/version&gt;
    &lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;build&gt;
&lt;pluginManagement&gt;
    &lt;plugins&gt;

    &lt;plugin&gt;
        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
        &lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
        &lt;version&gt;1.10&lt;/version&gt;
        &lt;executions&gt;
            &lt;execution&gt;
                &lt;id&gt;add-resource&lt;/id&gt;
                &lt;phase&gt;generate-sources&lt;/phase&gt;
                &lt;goals&gt;
                    &lt;goal&gt;add-source&lt;/goal&gt;
                &lt;/goals&gt;
                &lt;configuration&gt;
                    &lt;sources&gt;
                        &lt;source&gt;src/main/resources&lt;/source&gt;
                    &lt;/sources&gt;
                &lt;/configuration&gt;
            &lt;/execution&gt;
        &lt;/executions&gt;
    &lt;/plugin&gt;

    &lt;plugin&gt;
        &lt;groupId&gt;com.mysema.maven&lt;/groupId&gt;
        &lt;artifactId&gt;apt-maven-plugin&lt;/artifactId&gt;
        &lt;version&gt;1.1.3&lt;/version&gt;
        &lt;executions&gt;
            &lt;execution&gt;
                &lt;goals&gt;
                    &lt;goal&gt;process&lt;/goal&gt;
                &lt;/goals&gt;
                &lt;configuration&gt;
                    &lt;outputDirectory&gt;src/main/resources&lt;/outputDirectory&gt;
                    &lt;processor&gt;com.mysema.query.apt.jpa.JPAAnnotationProcessor&lt;/processor&gt;
                &lt;/configuration&gt;
            &lt;/execution&gt;
        &lt;/executions&gt;
        &lt;dependencies&gt;
            &lt;dependency&gt;
                &lt;groupId&gt;com.mysema.querydsl&lt;/groupId&gt;
                &lt;artifactId&gt;querydsl-apt&lt;/artifactId&gt;
                &lt;version&gt;2.9.0&lt;/version&gt;
            &lt;/dependency&gt;
        &lt;/dependencies&gt;            
    &lt;/plugin&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
            &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
            &lt;version&gt;2.6&lt;/version&gt;
            &lt;configuration&gt;
                &lt;webResources&gt;
                    &lt;resource&gt;
                        &lt;filtering&gt;true&lt;/filtering&gt;
                        &lt;directory&gt;src/main/webapp/WEB-INF&lt;/directory&gt;
                        &lt;includes&gt;
                            &lt;include&gt;**/*.xhtml&lt;/include&gt;
                            &lt;include&gt;**/*.xml&lt;/include&gt;
                        &lt;/includes&gt;
                    &lt;/resource&gt;
                    &lt;resource&gt;
                        &lt;filtering&gt;true&lt;/filtering&gt;
                        &lt;directory&gt;src/main/resources&lt;/directory&gt;
                        &lt;includes&gt;
                            &lt;include&gt;**/*.xml&lt;/include&gt;
                            &lt;include&gt;**/*.properties&lt;/include&gt;
                        &lt;/includes&gt;
                        &lt;targetPath&gt;WEB-INF/classes&lt;/targetPath&gt;
                    &lt;/resource&gt;
                &lt;/webResources&gt;
            &lt;/configuration&gt;
        &lt;/plugin&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
            &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
            &lt;version&gt;3.5.1&lt;/version&gt;
        &lt;/plugin&gt;
        &lt;plugin&gt;
            &lt;groupId&gt;org.bsc.maven&lt;/groupId&gt;
            &lt;artifactId&gt;maven-processor-plugin&lt;/artifactId&gt;
            &lt;version&gt;3.1.0&lt;/version&gt;
        &lt;/plugin&gt;
    &lt;/plugins&gt;

    &lt;/pluginManagement&gt;
&lt;/build&gt;
&lt;dependencyManagement&gt;
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;3.8.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
            &lt;artifactId&gt;javax.servlet-api&lt;/artifactId&gt;
            &lt;version&gt;3.1.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.ibm.db2&lt;/groupId&gt;
            &lt;artifactId&gt;db2jcc4&lt;/artifactId&gt;
            &lt;version&gt;10.1.200.238&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.ibm.db2&lt;/groupId&gt;
            &lt;artifactId&gt;db2jcc4_license_cu&lt;/artifactId&gt;
            &lt;version&gt;10.1.200.238&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-core&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-tx&lt;/artifactId&gt;
            &lt;version&gt;${spring-framework.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-webmvc&lt;/artifactId&gt;
            &lt;version&gt;${spring-framework.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
            &lt;artifactId&gt;spring-data-commons-core&lt;/artifactId&gt;
            &lt;version&gt;1.1.0.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.inject&lt;/groupId&gt;
            &lt;artifactId&gt;javax.inject&lt;/artifactId&gt;
            &lt;version&gt;1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
            &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
            &lt;version&gt;${aspectj.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-orm&lt;/artifactId&gt;
            &lt;version&gt;${spring-framework.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
            &lt;artifactId&gt;hibernate-entitymanager&lt;/artifactId&gt;
            &lt;version&gt;${hibernate.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
            &lt;artifactId&gt;hibernate-core&lt;/artifactId&gt;
            &lt;version&gt;${hibernate.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;commons-dbcp&lt;/groupId&gt;
            &lt;artifactId&gt;commons-dbcp&lt;/artifactId&gt;
            &lt;version&gt;1.4&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
            &lt;artifactId&gt;jsf-api&lt;/artifactId&gt;
            &lt;version&gt;${jsf.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.sun.faces&lt;/groupId&gt;
            &lt;artifactId&gt;jsf-impl&lt;/artifactId&gt;
            &lt;version&gt;${jsf.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
            &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
            &lt;version&gt;${slf4j.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ch.qos.logback&lt;/groupId&gt;
            &lt;artifactId&gt;logback-classic&lt;/artifactId&gt;
            &lt;version&gt;${logback.version}&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
            &lt;artifactId&gt;jstl&lt;/artifactId&gt;
            &lt;version&gt;1.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
            &lt;version&gt;2.5&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.servlet.jsp&lt;/groupId&gt;
            &lt;artifactId&gt;jsp-api&lt;/artifactId&gt;
            &lt;version&gt;2.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.sun.el&lt;/groupId&gt;
            &lt;artifactId&gt;el-ri&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax&lt;/groupId&gt;
            &lt;artifactId&gt;javaee-web-api&lt;/artifactId&gt;
            &lt;version&gt;7.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.primefaces&lt;/groupId&gt;
            &lt;artifactId&gt;primefaces&lt;/artifactId&gt;
            &lt;version&gt;5.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
            &lt;artifactId&gt;spring-security-config&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
            &lt;artifactId&gt;spring-security-core&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.security&lt;/groupId&gt;
            &lt;artifactId&gt;spring-security-web&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-binding&lt;/artifactId&gt;
            &lt;version&gt;1.0.6&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.webflow&lt;/groupId&gt;
            &lt;artifactId&gt;spring-faces&lt;/artifactId&gt;
            &lt;version&gt;2.4.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-webflow&lt;/artifactId&gt;
            &lt;version&gt;1.0.6&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-aop&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework&lt;/groupId&gt;
            &lt;artifactId&gt;spring-aspects&lt;/artifactId&gt;
            &lt;version&gt;3.1.2.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax&lt;/groupId&gt;
            &lt;artifactId&gt;javaee-api&lt;/artifactId&gt;
            &lt;version&gt;7.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.eclipse.persistence&lt;/groupId&gt;
            &lt;artifactId&gt;eclipselink&lt;/artifactId&gt;
            &lt;version&gt;2.6.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!-- http://mvnrepository.com/artifact/log4j/log4j --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;log4j&lt;/groupId&gt;
            &lt;artifactId&gt;log4j&lt;/artifactId&gt;
            &lt;version&gt;1.2.17&lt;/version&gt;
            &lt;scope&gt;compile&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
            &lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
            &lt;version&gt;2.5&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
            &lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
            &lt;version&gt;2.5&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
            &lt;artifactId&gt;spring-data-jpa&lt;/artifactId&gt;
            &lt;version&gt;1.10.0.RELEASE&lt;/version&gt;
        &lt;/dependency&gt;           
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
            &lt;artifactId&gt;commons-lang3&lt;/artifactId&gt;
            &lt;version&gt;3.4&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.inject&lt;/groupId&gt;
            &lt;artifactId&gt;guice&lt;/artifactId&gt;
            &lt;version&gt;3.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
            &lt;artifactId&gt;slf4j-log4j12&lt;/artifactId&gt;
            &lt;version&gt;1.7.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.inject.extensions&lt;/groupId&gt;
            &lt;artifactId&gt;guice-servlet&lt;/artifactId&gt;
            &lt;version&gt;3.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
            &lt;artifactId&gt;hibernate-validator&lt;/artifactId&gt;
            &lt;version&gt;5.2.3.Final&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.hibernate&lt;/groupId&gt;
            &lt;artifactId&gt;hibernate-entitymanager&lt;/artifactId&gt;
            &lt;version&gt;4.1.9.Final&lt;/version&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;
&lt;/dependencyManagement&gt;
</code></pre>

<p></p>