2013-12-16 44 views
0

我有一个使用Hibernate 4(部署和生产)的项目。我决定将它转换成Maven项目。该项目在eclipse中生成良好,没有显示错误。当我尝试在Maven中构建项目时,出现错误。我无法弄清楚它们之间的区别,以及它为什么在Eclipe中构建和部署良好,但在Maven构建中失败。我认为如果这确实是一个错误,我会在Eclipse中得到一个编译错误。以下是错误:Hibernate buildSessionFactory在Maven构建中失败

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project speed: Compilation failure: Compilation failure: 
[ERROR] \Users\SteveS\workspace\speed2\src\com\newpig\speed2\data\datahandlers\SyteLineHibernateUtils.java:[25,23] error: method buildSessionFactory in class Configuration cannot be applied to given types; 

的buildSessionFactory呼叫SyteLineHibernateUtils:

static { 
    try { 
     Configuration cfg = new Configuration(); 
     cfg.configure("/com/newpig/speed2/syteLine.cfg.xml"); 

     ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry(); 
     sessionFactory = cfg.buildSessionFactory(serviceRegistry); 

    } catch (Throwable ex) { 
     ex.printStackTrace(System.out); 
     ex.printStackTrace(System.err); 
     Logger logger = Logger.getLogger("com.newpig"); 
     logger.error("Error in SyteLineHibernateUtils. Static configuration"); 
     logger.error(ex.getMessage()); 
     ex.printStackTrace(); 

     System.exit(1); 
    } 
} 

这里是我的POM文件:

<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>speed</groupId> 
    <artifactId>speed</artifactId> 
    <version>1.4.1</version> 
    <packaging>war</packaging> 
    <name>Speed</name> 
    <description>SPEED application for manufacturing</description> 
    <profiles> 
     <profile> 
      <id>LOCAL</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
      </activation> 
      <properties> 
       <config.dir>configurations/dev</config.dir> 
      </properties> 
     </profile> 
     <profile> 
      <id>TEST</id> 
      <properties> 
       <config.dir>configurations/test</config.dir> 
      </properties> 
     </profile> 
     <profile> 
      <id>RELEASE</id> 
      <properties> 
       <config.dir>configurations/release</config.dir> 
      </properties> 
     </profile> 
    </profiles> 



    <build> 
     <finalName>speed2</finalName> 

     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.2</version> 
       <configuration> 
        <warSourceDirectory>WebRoot</warSourceDirectory> 
        <webResources> 
         <resource> 
          <directory>${config.dir}</directory> 
          <filtering>true</filtering> 
          <targetPath>WEB-INF</targetPath> 
          <includes> 
           <include>**/*.xml</include> 
           <include>**/*.properties</include> 
          </includes> 
         </resource> 
        </webResources> 

        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <repositories> 
     <repository> 
      <id>maven2-repository.dev.java.net</id> 
      <name>Java.net Repository for Maven</name> 
      <url>http://download.java.net/maven/2/</url> 
      <layout>default</layout> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>javax.activation</groupId> 
      <artifactId>activation</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.annotation</groupId> 
      <artifactId>jboss-annotations-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.ejb</groupId> 
      <artifactId>jboss-ejb-api_3.1_spec</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.el</groupId> 
      <artifactId>jboss-el-api_2.2_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.enterprise</groupId> 
      <artifactId>cdi-api</artifactId> 
      <version>1.0-SP4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.enterprise.deploy</groupId> 
      <artifactId>jboss-jad-api_1.2_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.faces</groupId> 
      <artifactId>jboss-jsf-api_2.1_spec</artifactId> 
      <version>2.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.interceptor</groupId> 
      <artifactId>jboss-interceptors-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.jms</groupId> 
      <artifactId>jboss-jms-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.jws</groupId> 
      <artifactId>jsr181-api</artifactId> 
      <version>1.0-MR1</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.management.j2ee</groupId> 
      <artifactId>jboss-j2eemgmt-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.resource</groupId> 
      <artifactId>jboss-connector-api_1.6_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.rmi</groupId> 
      <artifactId>jboss-rmi-api_1.0_spec</artifactId> 
      <version>1.0.4.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.security.auth.message</groupId> 
      <artifactId>jboss-jaspi-api_1.0_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.servlet.jsp</groupId> 
      <artifactId>jboss-jsp-api_2.2_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.servlet.jstl</groupId> 
      <artifactId>jboss-jstl-api_1.2_spec</artifactId> 
      <version>1.0.2.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.transaction</groupId> 
      <artifactId>jboss-transaction-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.ws.rs</groupId> 
      <artifactId>jboss-jaxrs-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>wsdl4j</groupId> 
      <artifactId>wsdl4j</artifactId> 
      <version>1.6.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.xml.bind</groupId> 
      <artifactId>jboss-jaxb-api_2.2_spec</artifactId> 
      <version>1.0.3.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.xml.registry</groupId> 
      <artifactId>jboss-jaxr-api_1.0_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.xml.rpc</groupId> 
      <artifactId>jboss-jaxrpc-api_1.1_spec</artifactId> 
      <version>1.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.xml.soap</groupId> 
      <artifactId>jboss-saaj-api_1.3_spec</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.xml.ws</groupId> 
      <artifactId>jboss-jaxws-api_2.2_spec</artifactId> 
      <version>2.0.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.2.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.picketbox</groupId> 
      <artifactId>picketbox</artifactId> 
      <version>4.0.6.final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.picketbox</groupId> 
      <artifactId>picketbox-commons</artifactId> 
      <version>1.0.0.final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.picketbox</groupId> 
      <artifactId>picketbox-infinispan</artifactId> 
      <version>4.0.6.final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.as</groupId> 
      <artifactId>jboss-as-controller-client</artifactId> 
      <version>7.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss</groupId> 
      <artifactId>jboss-dmr</artifactId> 
      <version>1.1.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.logging</groupId> 
      <artifactId>jboss-logging</artifactId> 
      <version>3.1.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jaxb-provider</artifactId> 
      <version>2.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>async-http-servlet-3.0</artifactId> 
      <version>2.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jaxrs</artifactId> 
      <version>2.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-multipart-provider</artifactId> 
      <version>2.3.1.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.ejb3</groupId> 
      <artifactId>jboss-ejb3-ext-api</artifactId> 
      <version>2.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>aristo</artifactId> 
      <version>1.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>c3p0</groupId> 
      <artifactId>c3p0</artifactId> 
      <version>0.9.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-beanutils</groupId> 
      <artifactId>commons-beanutils</artifactId> 
      <version>1.8.0</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>dot-luv</artifactId> 
      <version>1.0.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.1.2.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>4.1.2.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpcore</artifactId> 
      <version>4.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jasypt</groupId> 
      <artifactId>jasypt</artifactId> 
      <version>1.9.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jopendocument</groupId> 
      <artifactId>jdom</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.myfaces.tomahawk</groupId> 
      <artifactId>tomahawk20</artifactId> 
      <version>1.1.11</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.velocity</groupId> 
      <artifactId>velocity</artifactId> 
      <version>1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>1.4</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.velocity</groupId> 
      <artifactId>velocity-tools</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>3.4.2</version> 
     </dependency> 
     <dependency> 
      <groupId>com.newpig</groupId> 
      <artifactId>NPWebApp_SPEED</artifactId> 
      <version>1.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.newpig.progress</groupId> 
      <artifactId>Speed-User-Manager</artifactId> 
      <version>1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.newpig</groupId> 
      <artifactId>fun_speed_theme</artifactId> 
      <version>1.0.2</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>5.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.lowagie</groupId> 
      <artifactId>itext</artifactId> 
      <version>2.1.7</version> 
     </dependency> 
     <dependency> 
      <groupId>net.coobird</groupId> 
      <artifactId>thumbnailator</artifactId> 
      <version>[0.4, 0.5)</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.jbossas</groupId> 
      <artifactId>jboss-as-varia</artifactId> 
      <version>6.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.xml.ws</groupId> 
      <artifactId>policy</artifactId> 
      <version>2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jboss.spec.javax.security.jacc</groupId> 
      <artifactId>jboss-jacc-api_1.4_spec</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>jboss</groupId> 
      <artifactId>jboss-xacml-project</artifactId> 
      <version>2.0.1.GA</version> 
      <type>pom</type> 
     </dependency> 
     <dependency> 
      <groupId>org.jgroups</groupId> 
      <artifactId>jgroups</artifactId> 
      <version>2.12.0.CR5</version> 
     </dependency> 
    </dependencies> 
</project> 
+2

您是否认为可以从命令行发布'mvn dependency:tree'命令的结果,这可能有助于确定是否存在冲突的Hibernate版本问题。 – drembert

+2

您在使用Maven时是否使用了任何种类的Eclipse插件?看起来你的eclipse项目和Maven POM的依赖关系是不同的。插件应该保持这些同步。 – dimoniy

+0

@dimoniy我正在使用m2e。 – SteveS

回答

0

答案是在MVN dependenct发现:树命令@drembert让我跑步。当我通过树搜索Hibernate的实例时,发现我的一个依赖关系正在拉入Hibernate的旧版本。因为我不需要这种依赖关系(我认为它是JBoss工具为我添加的),我删除了依赖关系,并开始正常工作。