Maven clean编译不起作用

Maven clean编译不起作用,maven,maven-3,maven-compiler-plugin,Maven,Maven 3,Maven Compiler Plugin,我的pom文件中有maven编译器插件,如下所示,但编译器对泛型参数很生气。我的maven版本是“ApacheMaven 3.0.3(r1075438;2011-02-28 19:31:09+0200)” 此外,当我使用eclipse编译此项目时,它编译成功。项目的类路径中缺少包含com.aric.etlscheduler.domain.EulTransactionHistory类的jar。确保您已将jar作为依赖项添加到项目的pom中。从编译器错误来看,这可能就是正在发生的情况 DBUtil

我的pom文件中有maven编译器插件,如下所示,但编译器对泛型参数很生气。我的maven版本是“ApacheMaven 3.0.3(r1075438;2011-02-28 19:31:09+0200)”


此外,当我使用eclipse编译此项目时,它编译成功。

项目的类路径中缺少包含
com.aric.etlscheduler.domain.EulTransactionHistory
类的jar。确保您已将jar作为依赖项添加到项目的pom中。

从编译器错误来看,这可能就是正在发生的情况

  • DBUtils.oneAndOnlyOne(list)
    正在返回
    Object
    而不是
    EulTransactionHistory
  • 这是因为传递给方法的列表是
    对象的列表
    ,而不是
    EulTransactionHistory
    的列表
  • 这又是因为
    hibernateTemplate.findByCriteria()
    返回的是
    对象的列表,而不是
    EulTransactionHistory的列表
如果第329行是

EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list);

这是因为1)Maven类路径的第一个DBUtils类有一个oneAndOnlyOne()方法返回java.lang.Object,或者2)你没有传递你认为传递的列表,而是一个未参数化的列表或列表。

DBUtils在另一个项目中,你曾经有过DBUtils.oneAndOnlyOne()吗返回了一个对象?如果是这样,您需要在该项目上安装Maven


Maven使用最后安装的jar,而Eclipse,假设您以通常的方式设置它,则直接窥探另一个项目。

它在那里,它不是依赖项,它在我的源代码中,当然在类路径中,通过使用Eclipse成功编译它。我认为我的语法没有任何问题,因为它是用eclipse成功编译的。您的类路径中有多个版本的DBUtils或spring吗?Eclipse和Maven可能会以不同的顺序加载它们。
List<EulTransactionHistory> list = hibernateTemplate.findByCriteria(criteria, -1, 1);
EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list);
public static <T> T oneAndOnlyOne(List<T> list) {...}
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project etlscheduler: Compilation failure: Compilation failure SchedulerDaoImpl.java:[329,18] incompatible types
found   : java.lang.Object
required: com.aric.etlscheduler.domain.EulTransactionHistory
EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list);